как вернуть максимальную запись последовательности - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть таблица, в которой хранятся исторические данные. Я пытаюсь сделать запись max seq.я могу сделать это, но мне нужно включить tr_type, тогда я буду использовать выход для соединения с другой таблицей.ниже приведены мои данные

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

я хочу вернуть только последнюю строку

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете попробовать использовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...