正在查找POSTGRESQL行组的最大值
确定任期最长的总统的姓名、政党和任职年限 聚会。我不能使用join关键字 表主席:正在查找POSTGRESQL行组的最大值,sql,postgresql,Sql,Postgresql,确定任期最长的总统的姓名、政党和任职年限 聚会。我不能使用join关键字 表主席: Name | Party | years_served| -------------+-------------+-------------+ Roosevelt | Democratic | 12 Madison | Demo-rep | 8 Monroe | Demo-rep | 8 Adams | Demo-rep |
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当前位置你为什么认为你不能在那里使用连接?我可以问一下你为什么不能吗?