sql >> Database teknologi >  >> RDS >> Mysql

hvordan man får forskellige rækker med max værdi

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

Dette lille smarte trick er bygget ud fra GROUP BY for at hente den første række af hver sag. Normalt er dette som standard ORDER BY id ASC , men gennem denne underforespørgsel, den første række i hver authorId med de højeste votes .

Bemærk: Som nævnt af Iain Elder, virker denne løsning ikke med ONLY_FULL_GROUP_BY aktiv og virker kun i MySQL. Denne løsning er til en vis grad ikke understøttet på grund af manglende dokumentation, der bekræfter denne adfærd. Det fungerer godt for mig og har dog altid fungeret godt for mig.

Denne metode virker stadig på den seneste MySQL på sqlfiddle .



  1. Anvend ORDER BY på en UNION (Mysql)

  2. PHP MYSQL OPDATERING hvis Exist eller INSERT hvis ikke?

  3. Hvordan forhindrer man nogen i at gå tilbage til forrige side?

  4. Database vs tablespace, hvad er forskellen?