正在查找POSTGRESQL行组的最大值

正在查找POSTGRESQL行组的最大值,sql,postgresql,Sql,Postgresql,确定任期最长的总统的姓名、政党和任职年限 聚会。我不能使用join关键字 表主席: Name        | Party     | years_served| -------------+-------------+-------------+ Roosevelt  | Democratic | 12 Madison   | Demo-rep   | 8 Monroe    | Demo-rep   | 8 Adams     | Demo-rep   |

确定任期最长的总统的姓名、政党和任职年限 聚会。我不能使用join关键字

表主席:

Name         | Party       | years_served|
-------------+-------------+-------------+
Roosevelt    | Democratic  | 12
Madison      | Demo-rep    | 8
Monroe       | Demo-rep    | 8
Adams        | Demo-rep    | 4
所以结果是罗斯福、麦迪逊和门罗出现了,而亚当斯没有出现,因为他没有服务8年,这是演示代表的最高期限。

试试这个:

SELECT Name 
FROM President pr 
  INNER JOIN (SELECT Party, MAX(years_served) as YS FROM president GROUP BY Party) as MaxYS on MaxYS.Party=Pr.Party 
WHERE pr.years_served>=MaxYS.YS
希望就是你想要的。

你可以使用窗口功能:

with cte as (
    select
        *, dense_rank() over(partition by Party order by years_served desc) as rnk
    from Table1
)
select
    Name, Party, years_served
from cte
where rnk = 1

我不能使用join关键字here@wickys当前位置你为什么认为你不能在那里使用连接?我可以问一下你为什么不能吗?