如何返回最大序列记录

时间:2018-09-28 18:03:53

标签: sql db2

我有一个存储历史数据的表,我要尝试捕获最大seq记录。我可以做到,但是我需要包括tr_type,然后我将使用outupt与另一个表连接。下面是我的数据

CLM_NO  SEQ SUB TR_TYPE
12345   1   1   50
12345   1   2   50
12345   2   1   60
12345   2   2   60

我只想返回最后一行

1 个答案:

答案 0 :(得分:2)

您可以尝试使用exists和相关子查询

SELECT *
FROM T t1
WHERE exists(
    SELECT 1 
    FROM T tt
    GROUP BY tt.CLM_NO
    HAVING MAX(tt.SEQ) = t1.SEQ AND MAX(tt.SUB) = t1.SUB
)

编辑

您可以尝试使用ROW_NUMBER窗口功能。

SELECT * FROM (
    SELECT *,ROW_NUMBER() OVER(PARTITION BY CLM_NO ORDER BY TRAN_SEQ DESC,TRAN_SUB DESC) rn
    FROM TBL t1
)t1
where rn = 1