我有一个存储历史数据的表,我要尝试捕获最大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
我只想返回最后一行
答案 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