У меня есть 1 таблица:
id | year | quarter | month | brand | sku | total_unit_sales
-----------------------------------------------------------------
1 | 2010 | 1 | Jan | Toyota | 123 | 156
2 | 2010 | 1 | Jan | Toyota | 124 | 77
3 | 2010 | 1 | Jan | Toyota | 125 | 325
4 | 2010 | 1 | Feb | Toyota | 123 | 184
5 | 2010 | 1 | Feb | Toyota | 124 | 98
6 | 2010 | 1 | Feb | Toyota | 125 | 219
7 | 2010 | 1 | Mar | Toyota | 123 | 178
8 | 2010 | 1 | Mar | Toyota | 124 | 101
9 | 2010 | 1 | Mar | Toyota | 125 | 215
10 | 2010 | 1 | Apr | Toyota | 123 | 216
11 | 2010 | 1 | Apr | Toyota | 124 | 115
12 | 2010 | 1 | Apr | Toyota | 125 | 278
Мне нужно создать дельта-индексы (процент изменения одного периода времени к другому периоду) по продажам по брендам, месяцам, годам. Эти индексы представляют собой среднее изменение за последние 12 месяцев, изменение в текущем квартале, последний месяц по сравнению с предыдущим месяцем.
Однажды я добился этого многоэтапным способом, создав множество сводных таблиц, а затем сгенерировав нужный отчет. Однако это был настраиваемый вручную процесс. Теперь мне нужен полностью автоматизированный способ обновления источника данных и создания отчета.
Я работал над самостоятельным соединением, однако результаты менее чем желательны, имея в виду, что можно сравнить предыдущую цену с самой новой ценой путем самостоятельного присоединения к таблице с помощью:
left join on a.id=b.id+1
Это подвержено ошибкам из-за того, что за некоторые месяцы не собираются данные о продажах некоторых конкретных артикулов, не проданных в этом месяце.
Я ценю вашу помощь. Заранее спасибо. MySQL версии 5.5+