Anzahl der Beiträge nach Top-Level-Kategorie und Benutzer

Anzahl der Beiträge nach Hauptkategorie und Benutzer

Für jede Hauptkategorie wird eine Liste der Benutzer angezeigt, die dazu beigetragen haben, sowie die Anzahl ihrer Beiträge. Beiträge umfassen sowohl die Themenstarter-Beiträge als auch die Kommentare darunter. Sie können durch Bearbeiten der Abfrage auswählen, nur eine Hauptkategorie anzuzeigen.

/* Summiere Codes in Unterkategorien und Hauptkategorien */
SELECT 
    category_id, username AS "Benutzer", SUM(contributions) AS "Anzahl der Beiträge"
FROM (

    /* Benutzer mit Themen in Hauptkategorien. */
    SELECT
        topics.category_id, COUNT(*) AS contributions, users.username
    FROM users 
        INNER JOIN posts ON users.id = posts.user_id
        INNER JOIN topics ON posts.topic_id = topics.id
        INNER JOIN categories ON topics.category_id = categories.id
    WHERE categories.parent_category_id IS NULL
    GROUP BY category_id, username
    
    UNION
    
    /* Benutzer mit Themen in Unterkategorien, nach Hauptkategorie gruppiert. */
    SELECT
        categories.parent_category_id AS category_id, COUNT(*) AS contributions, users.username
    FROM users 
        INNER JOIN posts ON users.id = posts.user_id
        INNER JOIN topics ON posts.topic_id = topics.id
        INNER JOIN categories ON topics.category_id = categories.id
    WHERE categories.parent_category_id IS NOT NULL
    GROUP BY categories.parent_category_id, username

) AS users_by_category
INNER JOIN categories ON category_id = categories.id

GROUP BY category_id, username

HAVING SUM(contributions) > 5

ORDER BY category_id, "Anzahl der Beiträge" DESC