2014-01-22 60 views
0

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

谢谢!

回答

1

Postgres有做这个的语法distinct on

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