簡體   English   中英

如何根據多個字段選擇最大值並按多個字段分組

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

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