繁体   English   中英

选择记录字段包含另一个字段的最大值

[英]Select field of record contains max of another field

我正在使用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?

谢谢!

Postgres具有与此distinct on的语法:

select distinct on (name) p.surname 
from person p
order by name, age desc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM