我有一個列表: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
;