열이있는 테이블이 있습니다 : 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
;