サブカテゴリ別ビュー数
トピックのビューをより詳細に分析しますが、合計は表示しません。サブカテゴリが「(none)」の項目は、トップレベルカテゴリに直接配置されたトピックに関連します。
SELECT
topcat AS "カテゴリ",
subcat AS "サブカテゴリ",
SUM(views) AS "サブカテゴリのビュー数"
FROM (
/* サブレベルカテゴリ内のトピックビュー。 */
SELECT
topcat.name AS topcat, subcat.name AS subcat, SUM(topics.views) AS views
FROM topics
INNER JOIN categories subcat ON topics.category_id = subcat.id
INNER JOIN categories topcat ON subcat.parent_category_id = topcat.id
GROUP BY topcat.name, subcat.name
UNION
/* トップレベルカテゴリ内のトピックビュー(サブレベルカテゴリを除く)。 */
SELECT
topcat.name AS topcat, '(none)', SUM(topics.views) AS views
FROM topics
INNER JOIN categories topcat ON topics.category_id = topcat.id
WHERE topcat.parent_category_id IS NULL
GROUP BY topcat.name
) AS views_by_cat
GROUP BY topcat, subcat
/* 出力をカテゴリまたはビュー数でソートします。以下のいずれかを有効にしてください: */
/* ORDER BY topcat, subcat */
ORDER BY "サブカテゴリのビュー数" DESC