簡體   English   中英

SQL MAX 查詢多列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM