我要根据同一方“党”中的不同标准选择美国总统的名字。
我想要实现的是选择为自己的政党服务最多的总统的姓名。我能够找到每个政党的最长任期,并选择在这些年任职的总统的姓名,但是每个政党都不会遵守该标准。请参阅下面的代码:
select max(valdate)
from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
where valdate<=sysdate
and valdate>= sysdate-5
有人可以帮助我结合各方提出的不同最高服务年限的标准吗?提前致谢! DB Snapshot Current Results Desired Results
答案 0 :(得分:0)
欢迎堆栈溢出。
尝试以下操作:
select name, party, years_served
from president p
where not exists
(
select 1
from president as more_years_in_party
where more_years_in_party.party=p.party and more_years_in_party.years_served > p.years_served
)
order by years_served desc
答案 1 :(得分:0)
您可以尝试以下方法:
select name, party, years_served
from president r
where r.years_served = (select max(years_served) from president p where p.party=r.party);
这意味着如果总统在其政党中任职年限最长,则选择总统。
r
和p
只是别名
答案 2 :(得分:0)
如果您需要根据(聚会,年份服务)对的相等性进行过滤,则类似
WHERE (party, years_served) IN (SELECT party, max(...) FROM ...)
是您所需要的,但是您的引擎可能不支持这种语法。但是,以上内容等同于普通的简单连接
select name, party, years_served
from president
natural join
(select party, max(years_served) as years_served from president group by party)
应该这样做。