Есть таблица и в ней выдержится статистика по продажам товаров за каждый день, а конкретно хранится: товар, размер, кол-во продаж, кол-во заказов, баланс на складе, номер склада, дата
У меня есть некоторый запрос, который выводит агрегированную информацию за период, например
у нас есть инфа, что синюю кружку мы продавали 3 дня в подряд, у нас в бд есть в 3 строки (на каждый день), делаю запрос я ожидаю 1 строку где будут суммы продаж, и заказов (и тд и тп) этой кружки с каждого из складов за эти 3 дня.
Я составил запрос, но он ожидаемо не работает как мне надо, так как я "схлопываю" строки по дате (группирую по товару+размеру+складу) и суммирую столбцы, а мне нужно НЕ суммировать столбик stoks, а получить из него самую позднюю запись, те логически мне нужна агрегированная информация по продажам за 3 дня + текущие количество на складе.
я набросал пример
https://sqlize.online/sql/mysql80/693a79a8d004448c...
продублирую еще часть сюда
|----|--------------|------|--------|-------|--------|--------------|------------|
| id | product_id | size | orders | sales | stocks | warehouse_id | date |
|----|--------------|------|--------|-------|--------|--------------|------------|
| 1 | 85 | 45 | 1 | 1 | 10 | 1 | 2023-09-01 |
| 2 | 85 | 45 | 1 | 1 | 8 | 1 | 2023-09-02 |
| 3 | 85 | 45 | 1 | 1 | 6 | 1 | 2023-09-03 |
INSERT INTO stats (product_id,size,orders,sales,stocks,warehouse_id,date) VALUES (85,'45',1,1,10,1,'2023-09-01');
INSERT INTO stats (product_id,size,orders,sales,stocks,warehouse_id,date) VALUES (85,'45',1,1,8,1,'2023-09-02');
INSERT INTO stats (product_id,size,orders,sales,stocks,warehouse_id,date) VALUES (85,'45',1,1,6,1,'2023-09-03');
select
product_id,
size,
sum(orders) as orders,
sum(stocks) as stocks,
warehouse_id
from stats
where date(`date`) >= '2023-09-01' and date(`date`) <= '2023-09-04'
group by product_id, warehouse_id, size;
ps гуглю про оконные функции, вроде очень похоже что мне подойдут, но никак не могу составить запрос