Par exemple:
name | weight
jon 100
jane 120
joe 130
Comment puis-je ne renvoyer que le nom de la personne ayant le poids le plus élevé?
Utilisez ceci:
select name
from tbl
where weight = (select max(weight) from tbl)
SELECT name FROM tbl ORDER BY weight DESC LIMIT 1
Beaucoup plus performant que l'autre réponse et résultats dans une seule ligne.
Si vous devez rechercher plusieurs lignes, par exemple, date à laquelle chaque personne avait un poids maximum:
name | weight | day
don 110 1
don 120 20
don 110 30
joe 90 1
joe 80 15
joe 85 30
c'est-à-dire que pour "don" vous voulez obtenir "don | 120 | 20"
et pour Joe que vous voulez "joe | 90 | 1"
, vous pouvez alors écrire
SELECT (array_agg(name ORDER BY weight DESC))[1], max(weight), (array_agg(day ORDER BY weight DESC))[1] FROM tbl