sql >> Database >  >> RDS >> Mysql

hoe u verschillende rijen met maximale waarde kunt krijgen

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

Deze kleine handige truc is gebouwd op basis van GROUP BY om de eerste rij van elke zaak op te halen. Meestal is dit standaard ORDER BY id ASC , maar via deze subquery, de eerste rij in elke authorId met de hoogste votes .

Opmerking: Zoals vermeld door Iain Elder, werkt deze oplossing niet met ONLY_FULL_GROUP_BY actief en werkt alleen in MySQL. Deze oplossing wordt tot op zekere hoogte niet ondersteund vanwege een gebrek aan documentatie die dit gedrag bevestigt. Het werkt goed voor mij en heeft echter altijd goed gewerkt voor mij.

Deze methode werkt nog steeds op de nieuwste MySQL op sqlfiddle .



  1. Toegewijde snapshot-isolatie lezen

  2. Verschil tussen datetime en timestamp in sqlserver?

  3. MySQL - Maak een bestaand veld uniek

  4. Hoe de Modulo-operator werkt in MariaDB