sql >> Databáze >  >> RDS >> Mysql

jak získat odlišné řádky s maximální hodnotou

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

Tento malý úhledný trik je postaven na základě GROUP BY pro načtení prvního řádku každého případu. Obvykle je to ve výchozím nastavení ORDER BY id ASC , ale prostřednictvím tohoto dílčího dotazu první řádek v každém authorId s nejvyšším votes .

Poznámka: Jak zmínil Iain Elder, toto řešení nefunguje s ONLY_FULL_GROUP_BY aktivní a funguje pouze v MySQL. Toto řešení je do jisté míry nepodporované kvůli nedostatku dokumentace potvrzující toto chování. Funguje to pro mě dobře a vždy mi to fungovalo dobře.

Tato metoda stále funguje na nejnovějším MySQL na sqlfiddle .



  1. Proč GRANT nefunguje v MySQL?

  2. Vyberte dostupné pokoje mezi dvěma termíny

  3. Jak vypočítat čtverec v SQL Server

  4. Nelze upravit informace v záhlaví