SQL Выбрать из двух строк запись с последней датой

code deal created
1 type 3 2019-02-06 16:52:00
2 type 4 2020-02-06 16:52:00
3 type 3 2020-02-06 17:52:00
4 type 4 2021-02-06 18:55:00

выбрать по двум одинаковым датам deal с последней датой чтобы остались : 1,3,4


Ответы (1 шт):

Автор решения: Vitaliy Zlobin

Это про оконные функции нужно почитать, а именно про ROW_NUMBER.

И примерно так это будет выглядеть:

SELECT *
FROM
(
    SELECT *, ROW_NUMBER() OVER(PARTITION BY created ORDER BY deal) AS NUM
    FROM TableName
) AS Subquery
WHERE NUM = 1

Можно после deal дописать DESC, тогда по убыванию пронумеруется.

→ Ссылка