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...