Verifique isso... para evitar referenciar o mesmo grupo de resultados, criei uma tabela... você deve excluí-la após fazer o processamento, ou substituir maxcounttemp por
(SELECT what, loc, count(loc) howmany FROM maxcount GROUP BY what, loc) as tblX
Tentei torná-lo TEMPORÁRIO, mas você não pode usá-lo dentro de uma subconsulta se a tabela externa for a mesma. 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);
espero que ajude... tenha em mente que bx ou by são igualmente possíveis nesta consulta...