최상위 카테고리별 조회수

최상위 카테고리별 조회수

포럼 개설 이래 모든 토픽의 총 조회수를 포함합니다.

/* 인위적인 정렬 순서 열을 숨기고 해당 열 기준으로 정렬하기 위한 외부 SELECT */
SELECT "카테고리", "조회수"
FROM (

    /* 최상위 카테고리별 조회수 */
    SELECT 
        topcat AS "카테고리", 
        SUM(views) AS "조회수",
        0 AS sortorder /* 인위적인 정렬 열. 여기서는 맨 앞으로 정렬하기 위해 사용 */
    
    FROM (
        /* 하위 레벨 카테고리 내 토픽 조회수 */
        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
    
        /* 최상위 카테고리 내 토픽 조회수 (하위 레벨 카테고리 제외) */
        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
    
    /* 끝에 총계(TOTAL) 행 추가 */
    SELECT 
        '총계' AS "카테고리",
        SUM(topics.views) AS "조회수",
        1 AS sortorder /* 인위적인 정렬 열. 여기서는 맨 뒤로 정렬하기 위해 사용 */
    FROM
        topics
    GROUP BY "카테고리"
    
    /* 카테고리 또는 조회수 중 하나로 출력을 정렬합니다. 다음 중 하나를 활성화하세요: */
    /* ORDER BY topcat, subcat */
    ORDER BY "조회수" DESC

) AS views_by_cat_with_total

ORDER BY sortorder, "카테고리"