Sehr geehrte Damen und Herren,
ich benötige Ihre Unterstützung bei der Ausführung eines SQL-Codes, um die Größen jeder Kategorie anzuzeigen und regelmäßig zu überprüfen, ob die Kategorie die von den Moderatoren vereinbarte Größe nicht überschreitet.
Wir haben den folgenden Code ausgeführt, aber das Ergebnis wird in Bytes angezeigt und wir benötigen es in GB oder MB.
-- Abfrage zur Schätzung der Datengröße für jede Kategorie in MB und 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 -- Systemkategorien ausschließen
AND t.deleted_at IS NULL -- Gelöschte Themen ausschließen
AND p.deleted_at IS NULL -- Gelöschte Beiträge ausschließen
GROUP BY
c.id, c.name
ORDER BY
total_category_size_mb DESC
Ich benötige Ihre Unterstützung, um es im folgenden Format anzuzeigen:
