У меня есть следующая таблица REPORT
m = month,
pid = product_id,
bid = branch_id,
s = sales
m pid bid s
--------------------------
1 1 1 20
1 3 1 11
1 2 1 14
1 4 1 16
1 5 1 31
1 1 2 30
1 3 2 10
1 2 2 24
1 4 2 17
1 5 2 41
2 3 1 43
2 5 1 21
2 4 1 10
2 1 1 5
2 2 1 12
2 3 2 22
2 5 2 10
2 4 2 5
2 1 2 4
2 2 2 10
3 3 1 21
3 5 1 10
3 4 1 44
3 1 1 4
3 2 1 14
3 3 2 10
3 5 2 5
3 4 2 6
3 1 2 7
3 2 2 10
Я хотел бы получить сводку по этой таблице продаж, показав 3 лучших продаж среди продуктов во всех филиалах. что-то вроде этого:
m pid total
---------------------
1 5 72
1 1 50
1 4 33
2 3 65
2 5 31
2 2 22
3 4 50
3 3 31
3 2 24
Таким образом, в первый месяц продукт № 5 имеет самый высокий общий объем продаж — 72, за ним следует продукт № 1 — 50 и т. д. если бы я мог разделить их на разные таблицы для каждого месяца, было бы лучше
пока что я могу сделать сводку за 1 месяц и показать все, а не топ-3.
select pid, sum(s)
from report
where m = 1
group by pid
order by sum(s);
большое спасибо!