我正在使用PostgreSQL版本9.x
我想选择包含分组项目中字段最大值的记录字段。 假设这些是我的表和内容;
id | name | surname | age
1 ahmet adal1 25
2 mehmet mdal2 23
3 ahmet adal3 27
4 ahmet adal4 22
5 mehmet mdal5 28
我想按名称对所有记录进行分组,并选择包含最大年龄的记录的姓氏。
我应该得到结果;
adal3
mdal5
这是我想要运行的查询;
select p.surname
from person p
group by name
having max(age)
我知道这不起作用并且表达式必须是布尔值。我这样做只是为了更好地解释自己。
有没有办法用sql获得我想要的东西,尤其是PostgreSQL?
谢谢!
答案 0 :(得分:1)
Postgres的语法distinct on
执行此操作:
select distinct on (name) p.surname
from person p
order by name, age desc