Группировка по нескольким признакам

ГРУППИРОВКА ПО НЕСКОЛЬКИМ ПРИЗНАКАМ

Давайте посчитаем, на какую сумму мы продали каждый вид товара (ProductId) в разбивке по дням. Отсортируем полученный результат сначала по id товара, а потом по дням. 

Для этого воспользуемся запросом:

select
    ProductId,
    Date,
    sum(Quantity*UnitPrice) as total_qt
from
    supermarket_sales
group by
    Date,
    ProductId
order by
    ProductId,
    Date

Разберем запрос, который мы написали:

  1. Чтобы получить, сумму продаж для каждого товара, нужно цену (UnitPrice) умножить на количество (Quantity), а потом все суммировать.
  2. Quantity*UnitPrice мы кладем в функцию SUM(). Как нам уже известно, функции могут принимать в качестве аргумента результаты других функций или преобразований.
  3. В этом примере мы хотим получить сумму по дням и id продуктов, поэтому в SELECT и GROUP BY мы указываем столбцы ProductId и Date.
  4. ORDER BY - мы пишем после GROUP BY. В конце урока мы еще объясним, какая должна быть последовательность операторов в запросе.