Vérifiez ceci... afin d'éviter de référencer le même groupe de résultats, j'ai créé une table... vous devez la supprimer après avoir effectué le traitement, ou remplacer maxcounttemp par (SELECT what, loc, count(loc) howmany FROM maxcount GROUP BY what, loc) as tblX
J'ai essayé de le rendre TEMPORAIRE, mais vous ne pouvez pas l'utiliser dans une sous-requête si la table externe est la même.
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);
j'espère que cela vous aidera... gardez à l'esprit que bx ou by sont également possibles sur cette requête...