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

como obter linhas distintas com valor máximo

SELECT id, authorId, answer, votes
FROM (  SELECT id, authorId, answer, votes
        FROM answers
        ORDER BY votes DESC) AS h
GROUP BY authorId

Este pequeno truque é construído com base em GROUP BY para recuperar a primeira linha de cada caso. Normalmente, isso é por padrão ORDER BY id ASC , mas por meio dessa subconsulta, a primeira linha em cada authorId com os maiores votes .

Observação: Conforme mencionado por Iain Elder, esta solução não funciona com ONLY_FULL_GROUP_BY ativo e só funciona no MySQL. Esta solução é, até certo ponto, sem suporte devido à falta de documentação que confirme esse comportamento. Ele funciona bem para mim e sempre funcionou bem para mim no entanto.

Este método ainda funciona no MySQL no sqlfiddle mais recente .