У меня есть таблица, в которой указаны все покупки, сделанные в каждой школе.Я могу получить общую сумму расходов на школу, на предмет, в день, используя следующие данные.
SELECT
date
school_id,
item_id,
sum(price) as total_price
FROM purchases
GROUP BY school_id, item_id, date
ORDER BY school_id, date
Будет возвращено что-то вроде
date school_id item_id total_price
2016-11-18 | 1 | 1 | 0.50
2016-11-17 | 1 | 2 | 1.00
2016-11-16 | 1 | 1 | 0.50
2016-11-18 | 2 | 2 | 1.00
2016-11-17 | 2 | 2 | 1.00
2016-11-16 | 2 | 2 | 1.00
Мне нужна таблица, которая возвращает итоговую цену за последние 3 дня (включая день) каждого дня, так что-то вроде
date school_id item_id total_price
2016-11-18 | 1 | 1 | 1.00
2016-11-17 | 1 | 2 | 1.00
2016-11-16 | 1 | 1 | 0.50
2016-11-18 | 2 | 2 | 3.00
2016-11-17 | 2 | 2 | 2.00
2016-11-16 | 2 | 2 | 1.00
Я знаю, что могу использовать lag () OVER (PARTITION BY), но мне, возможно, придется делать это месяцами, а не 3 днями, и для настройки лага потребуется вечность.Я не совсем уверен, какой другой метод я могу использовать.Любое руководство?