У меня есть таблица с колонками: date, category, views
.Относительная частота по категориям SQL-запросы
Я хотел бы написать запрос, который дает мне следующий вывод:
year, quarter, category, "relative percentage of category views by quarter"
Например:
2013, Q1, blue, 0.15
2013, Q1, yellow, 0.05
2013, Q1, green, 0.80
2013, Q2, blue, 0.20
2013, Q2, yellow, 0.05
2013, Q2, green, 0.75
2013, Q3, blue, 0.10
2013, Q3, yellow, 0.15
2013, Q3, green, 0.65
Обратите внимание, что для каждого квартала относительные частоты добавить до 1 по множеству категорий.
Это просто слишком много состояний для динамического управления только SQL (я использую MySQL)?
Это то, что у меня есть до сих пор.
Это почти то, что я хочу, за исключением того, что относительная частота выводит сумму в 1 по всем кварталам.
SET @total_views = SELECT sum(views) FROM daily_views_by_category;
SELECT
year(dt),
quarter(dt),
category,
sum(views)/@total_views AS category_views
FROM
daily_views_by_category
GROUP BY
year(dt), quarter(dt), category
ORDER BY
year(dt), quarter(dt), category
;