web-dev-qa-db-fra.com

Comment trouver la plus grande valeur d'une colonne dans postgresql?

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é?

33
diesel

Utilisez ceci:

select name
from tbl
where weight = (select max(weight) from tbl)
36
Hao
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.

75
raveren

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
0
alexkovelsky