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, тогда по убыванию пронумеруется.