Выполнить функцию 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...

Другие вопросы по тегам