Visualizações por subcategoria
Uma análise mais detalhada das visualizações de tópicos, sem somá-las. As entradas com subcategoria “(none)” referem-se a tópicos posicionados diretamente nas categorias de nível superior.
SELECT
topcat AS "Categoria",
subcat AS "Subcategoria",
SUM(views) AS "Visualizações da subcategoria"
FROM (
/* Visualizações de tópicos em subcategorias. */
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
/* Visualizações de tópicos em categorias de nível superior (excluindo subcategorias). */
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
/* Ordene a saída por categoria ou por visualizações. Ative uma destas opções: */
/* ORDER BY topcat, subcat */
ORDER BY "Visualizações da subcategoria" DESC