Mysql
 sql >> Database >  >> RDS >> Mysql

mysql quale valore ha il conteggio massimo

Dai un'occhiata... per evitare di fare riferimento allo stesso gruppo di risultati, ho creato una tabella... dovresti eliminarla dopo aver eseguito l'elaborazione o sostituire maxcounttemp con (SELECT what, loc, count(loc) howmany FROM maxcount GROUP BY what, loc) as tblX Ho provato a renderlo TEMPORANEO, ma non puoi usarlo all'interno di una sottoquery se la tabella esterna è la stessa.

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);

spero che ti aiuti... tieni presente che bx o by sono ugualmente possibili su questa query...