Выберите вторую последнюю запись для каждой группы в таблице - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть данные, как показано ниже в моей таблице в базе данных SQL Server.

Запрос select * from mytable order by UpdatedDate Desc возвращает:

ID  COL1    UPDATED DATE
37  NULL    2018-06-25 18:20:50.210
37  NULL    2018-06-24 18:22:31.230
38  NULL    2018-04-03 14:16:47.953
38  NULL    2018-04-02 14:17:42.660
38  NULL    2018-04-01 14:17:55.963
44  NULL    2018-06-25 18:13:31.780
44  NULL    2018-06-23 18:13:44.020
44  NULL    2018-06-21 18:13:53.003
44  NULL    2018-06-20 18:14:01.490

Какой запрос вернет мне результат ниже, т. Е. Вторые последние обновленные записи

37  NULL    2018-06-24 18:22:31.230
38  NULL    2018-04-02 14:17:42.660
44  NULL    2018-06-23 18:13:44.020

1 Ответ

0 голосов
/ 09 ноября 2018

Просто найдите записи с номером строки = 2. Для последних записей вам нужно упорядочить по дате.

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY UPDATED_DATE DESC) AS rn
    FROM yourdata
) x
WHERE rn = 2
...