Анализ квартал на квартал / месяц на месяц в 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
формат немного другой, но он должен быть лучше для анализа