Поддержка извлечения отчета с помощью плагина Data Explorer

Уважаемые коллеги,

Мне нужна ваша помощь в выполнении SQL-запроса для просмотра размеров каждой категории, чтобы периодически отслеживать и обеспечивать, чтобы размер категории не превышал согласованный модераторами лимит.

Мы выполнили следующий запрос, но результат отображается в байтах, а нам нужно, чтобы он отображался в ГБ или МБ.

-- Запрос для оценки размера данных для каждой категории в МБ и ГБ
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 -- Исключить системные категории
    AND t.deleted_at IS NULL -- Исключить удалённые темы
    AND p.deleted_at IS NULL -- Исключить удалённые сообщения
GROUP BY 
    c.id, c.name
ORDER BY 
    total_category_size_mb DESC

Нужна ваша помощь, чтобы отобразить результат в следующем формате:

Я думаю, вам просто нужно изменить расчеты, чтобы они соответствовали вашим единицам измерения. Например, для ГБ

-- Запрос для оценки размера данных для каждой категории в ГБ
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

Принято, спасибо!

Вопрос очень базовый… у меня отображается практически нулевой размер. Это связано с использованием S3 или изображения не учитываются как загрузки? Конечно, они относительно небольшие, как и некоторые PDF-файлы и электронные книги, но всё же они должны быть больше, чем 0,001 ГБ.