How do I find the largest value in a column in postgres sql?

SELECT name FROM tbl ORDER BY weight DESC LIMIT 1

Much more performant than the other answer and results in one row only.


Use this:

select name
from tbl
where weight = (select max(weight) from tbl)

If you need to find multiple rows, e.g. date on which each person had maximum weight:

name | weight | day
don    110      1
don    120      20
don    110      30
joe    90       1
joe    80       15
joe    85       30

i.e. for "don" you want to get "don | 120 | 20" and for joe you want "joe | 90 | 1", then you can write:

SELECT name, max(weight), (array_agg(day ORDER BY weight DESC))[1] FROM tbl GROUP BY name