[英]SQL MAX Query Multiple Columns
嘗試根據一個 MAX 值填充多個列,但分組返回多個結果。 有沒有辦法告訴 SQL 只根據我想要的 MAX 提取值?
詢問:
Select a.ID, (MAX)a.PayDate, a.AgencyName
From a
Group By a.ID, a.AgencyName
我需要的是每個 ID 的最新付款日期,然后我需要參考該條目的其他信息,例如 AgencyName(以及我想添加的更多列),但由於分組 - SQL 返回每個 AgencyNames 的最新付款日期人有 - 但我只想要與該 ID 的 Max Paydate 記錄相關聯的 AgencyName。 我知道這是執行此操作的分組,但我不確定如何進行 - 非常感謝任何幫助。
謝謝
Select a.ID,a.PayDate, a.AgencyName
From a
where exists (select 1 from a a1 where a1.id = a.id
having a.payDate = max(a1.paydate)
Group By a.ID,
我只會使用這樣的相關子查詢:
select a.*
from a
where a.paydate = (select max(a2.paydate) from a a2 where a2.id = a.id);
請注意,如果id
在最近的paydate
有重復,這可能會返回多行。 保證一行的另一種方法是row_number()
:
select a.*
from (select a.*,
row_number() over (partition by id order by paydate desc) as seqnum
from a
) a
where seqnum = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.