Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql, welcher Wert die maximale Anzahl hat

Schauen Sie sich das an ... um zu vermeiden, dass auf dieselbe Gruppe von Ergebnissen verwiesen wird, habe ich eine Tabelle erstellt ... Sie sollten sie nach der Verarbeitung löschen oder maxcounttemp durch (SELECT what, loc, count(loc) howmany FROM maxcount GROUP BY what, loc) as tblX Ich habe versucht, es TEMPORARY zu machen, aber Sie können es nicht innerhalb einer Unterabfrage verwenden, wenn die äußere Tabelle dieselbe ist.

CREATE TABLE `maxcounttemp` (
  `what` varchar(1) DEFAULT NULL,
  `loc` varchar(1) DEFAULT NULL,
  `howmany` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO maxcounttemp (
  SELECT what, loc, count(loc) howmany FROM maxcount GROUP BY what, loc
);

SELECT mct.what, mct.loc, mct.howmany
FROM maxcounttemp mct 
WHERE (mct.what, mct.howmany) IN (
  SELECT mct2.what, MAX(mct2.howmany) 
  FROM maxcounttemp mct2 
  WHERE mct2.what = mct.what 
  GROUP BY mct2.what
) GROUP BY (mct.what);

hoffe es hilft... bedenke, dass bx oder by bei dieser Abfrage gleichermaßen möglich sind...