Aufrufe nach Top-Level-Kategorie

Ansichten nach Hauptkategorie

Inklusive der Gesamtsumme aller Themenansichten auf Ihrem Forum seit dem allerersten Tag.

/* Äußere SELECT-Anweisung, um die künstliche Spalte für die Sortierreihenfolge auszublenden und danach zu sortieren. */
SELECT "Kategorie", "Ansichten"
FROM (

    /* Ansichten pro Hauptkategorie. */
    SELECT 
        topcat AS "Kategorie", 
        SUM(views) AS "Ansichten",
        0 AS sortorder /* Künstliche Spalte für die Sortierung, hier, um ganz nach vorne zu sortieren. */
    
    FROM (
        /* Themenansichten in Unterkategorien. */
        SELECT
            topcat.name AS topcat, 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
        
        UNION
    
        /* Themenansichten in Hauptkategorien (ohne Unterkategorien). */
        SELECT
            topcat.name AS topcat, 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
    
    UNION
    
    /* Am Ende eine ZEILE MIT GESAMTSUMME hinzufügen. */
    SELECT 
        'GESAMTSUMME' AS "Kategorie",
        SUM(topics.views) AS "Ansichten",
        1 AS sortorder /* Künstliche Spalte für die Sortierung, hier, um ganz nach hinten zu sortieren. */
    FROM
        topics
    GROUP BY "Kategorie"
    
    /* Ausgabe entweder nach Kategorie oder nach Ansichten sortieren. Aktivieren Sie eine dieser Optionen: */
    /* ORDER BY topcat, subcat */
    ORDER BY "Ansichten" DESC

) AS views_by_cat_with_total

ORDER BY sortorder, "Kategorie"