#sql #date-range
#sql #диапазон дат
Вопрос:
Я использую приведенный ниже запрос, чтобы получить обновленный баланс каждого клиента за месяц. Данный диапазон дат рассчитан только на один месяц, но теперь мне нужно сопоставить последние балансы со всеми в данном диапазоне дат. Запрос приведен ниже для вашей справки.
SELECT * FROM (SELECT id, date_1, balance, Row_number() OVER ( partition BY id ORDER BY date_1 DESC) AS RN FROM customer WHERE date_1 BETWEEN '2021-01-01' AND '2021-01-30' ) sub WHERE rn = 1
Ответ №1:
Попробуйте удалить раздел с помощью функции окна Row_number ().
SELECT * FROM (SELECT id, date_1, balance, Row_number() OVER (ORDER BY date_1 DESC) AS RN FROM customer WHERE date_1 BETWEEN '2021-01-01' AND '2021-01-30' ) sub WHERE rn = 1