Анализ квартал на квартал / месяц на месяц в MySQL

У меня есть данные по кредитам, и я хочу сравнить продажи в разные годы по кварталу или месяцу

Мои данные выглядят так

disbursementdate | amount | product | cluster
2017-01-01       | 1000   | HL      | West
2018-02-01       | 1000   | PL      | East

Поэтому после запроса я бы в идеале хотел, чтобы результат выглядел следующим образом

 Quarter | 2017 | 2018
   Q1    | 1000 | 0
   Q2    | 100  | 1000

Точно так же это может быть сделано для ежемесячного анализа, а также

Я тоже не против хранения данных в другом формате... могу разделить дату в другом поле, например, месяц, квартал, год

Я борюсь с запросом

2 ответа

Решение

Вы можете использовать условную агрегацию:

select quarter(disbursementdate) as quarter,
       sum(case when year(disbursementdate) = 2017 then amount else 0 end) as amount_2017,
       sum(case when year(disbursementdate) = 2018 then amount else 0 end) as amount_2018
from 
group by quarter(disbursementdate) ;

Если бы вы хотели year/quarter в отдельных строках вы должны сделать:

select year(disbursementdate) as year, quarter(disbursementdate) as quarter,
       sum(amount)
from 
group by year(disbursementdate), quarter(disbursementdate) ;

Попробуй это:

    SELECT YEAR(disbursementdate) as _year, quarter, SUM(amount)
    FROM
       (
      SELECT disbursementdate, QUARTER(disbursementdate) as quarter, 
       amount,  product, cluster
       FROM mytable
   ) AS sub_query
  GROUP BY _year, quarter

формат немного другой, но он должен быть лучше для анализа

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