Выполнить функцию SQL для одного столбца на основе нескольких внешних ключей
Я сталкиваюсь с этой проблемой, когда пытаюсь разработать размерный дизайн базы данных. По сути, у меня есть таблица фактов (sale_fact), которая содержит суррогатный ключ, несколько внешних ключей (pid для идентификатора продукта, cid для идентификатора страны и даты) и данные о продажах. Таблица гранулярности или фактов представлена ежедневно. Как мне суммировать данные о продажах за недели (или месяцы), в зависимости от различных комбинаций этих внешних ключей? Например, я хочу суммировать данные о продажах продукта 1 в стране 1 на этой неделе (pid = 1 и cid = 1 и дата = понедельник), данные о продажах продукта 2 в стране 2 за ту же неделю (pid = 2 и cid = 2 и date = понедельник). Как мне получить эти данные в одном SQL? Пример набора результатов будет выглядеть так:
| id | pid | cid | date | total |
| 1 | 1 | 1 | 2013-11-04 | 100 |
| 2 | 1 | 2 | 2013-11-04 | 90 |
| 3 | 1 | 3 | 2013-11-04 | 80 |
| 4 | 2 | 1 | 2013-11-04 | 91 |
......more data
1 ответ
Почему бы вам не использовать что-то вроде select sum(sales) в качестве 'total' из таблицы, где date = понедельник groupby pid, cid...