Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql qual valor tem contagem máxima


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