[英]How to select max value based on multiple fields and grouped by multiple fields
請協助以下。 樣本數據:
LOCATION ITEMNO TRANSDATE DAYENDSEQ ENTRYSEQ LINENO ANSWER
Area1 A 20180702 1 1 1 a
Area1 A 20180703 1 1 1 b
Area1 A 20180703 2 1 1 c
Area1 A 20180703 2 2 1 d
Area1 A 20180703 2 2 2 e
Area1 B 20180703 1 1 1 f
Area1 C 20180703 1 1 2 g
Area1 C 20180703 1 1 1 h
Area2 A 20180703 1 2 1 i
Area2 A 20180703 1 1 4 j
Area2 A 20180703 1 1 5 k
要返回每個位置的每個項目的ANSWER值,其中TRANSDATE,DAYENDSEQ,ENTRYSEQ和LINENO(按此順序)的組合是最大的。
LOCATION ITEMNO TRANSDATE DAYENDSEQ ENTRYSEQ LINENO ANSWER
Area1 A 20180703 2 2 2 e
Area1 B 20180703 1 1 1 f
Area1 C 20180703 1 1 2 g
Area2 A 20180703 1 2 1 i
使用ANSI標准row_number()
函數:
select t.*
from (select t.*,
row_number() over (partition by location, itemno
order by transdate desc, dayendseq desc, entryseq desc, lineno desc
) as seqnum
from t
) t
where seqnum = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.