데이터 탐색기 플러그인으로 보고서 추출 지원

여러분께,

카테고리별 크기를 주기적으로 추적하여 관리자가 합의한 크기를 초과하지 않도록 확인하기 위해 SQL 코드를 실행하는 데 도움이 필요합니다.

다음 코드를 실행했지만 결과가 바이트 단위로 표시되며, GB 또는 MB 단위로 표시되도록 해야 합니다.

-- Query to estimate the data size for each category in MB and GB
SELECT 
    c.id AS category_id,
    c.name AS category_name,
    COUNT(DISTINCT t.id) AS topics_count,
    COUNT(p.id) AS posts_count,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024, 2) AS total_text_size_mb,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024 / 1024, 4) AS total_text_size_gb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024, 2) AS total_uploads_size_mb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024 / 1024, 4) AS total_uploads_size_gb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024, 2) AS total_category_size_mb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024 / 1024, 4) AS total_category_size_gb
FROM 
    categories c
LEFT JOIN 
    topics t ON t.category_id = c.id
LEFT JOIN 
    posts p ON p.topic_id = t.id
LEFT JOIN 
    post_custom_fields pcf ON pcf.post_id = p.id AND pcf.name = 'uploads'
LEFT JOIN 
    uploads u ON u.id = pcf.value::int
WHERE 
    c.id > 0 -- Exclude system categories
    AND t.deleted_at IS NULL -- Exclude deleted topics
    AND p.deleted_at IS NULL -- Exclude deleted posts
GROUP BY 
    c.id, c.name
ORDER BY 
    total_category_size_mb DESC

다음 형식으로 표시되도록 도움이 필요합니다:

계산식을 변경하여 단위를 반영해야 한다고 생각합니다. 예를 들어 GB의 경우입니다.

-- 각 카테고리의 데이터 크기를 GB로 추정하는 쿼리
SELECT 
    c.id AS category_id,
    c.name AS category_name,
    COUNT(DISTINCT t.id) AS topics_count,
    COUNT(p.id) AS posts_count,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024 / 1024, 4) AS total_text_size_gb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024 / 1024, 4) AS total_uploads_size_gb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024 / 1024, 4) AS total_category_size_gb
FROM 
    categories c
LEFT JOIN 
    topics t ON t.category_id = c.id
LEFT JOIN 
    posts p ON p.topic_id = t.id
LEFT JOIN 
    post_custom_fields pcf ON pcf.post_id = p.id AND pcf.name = 'uploads'
LEFT JOIN 
    uploads u ON u.id = pcf.value::int
WHERE 
    c.id > 0 -- 시스템 카테고리 제외
    AND t.deleted_at IS NULL -- 삭제된 주제 제외
    AND p.deleted_at IS NULL -- 삭제된 게시글 제외
GROUP BY 
    c.id, c.name
ORDER BY 
    total_category_size_gb DESC

확인했습니다. 감사합니다!

너무 기초적인 질문인 것 같네요… 제 화면에는 거의 0에 가까운 용량이 표시됩니다. 이건 S3 사용량에서 나오는 건가요, 아니면 이미지가 업로드 용량으로 집계되지 않는 건가요? 물론 이미지나 일부 PDF, 전자책 파일은 상대적으로 크기가 작긴 하지만, 그래도 0.001 GB보다는 커야 할 것 같은데요.