Unterstützung beim Erstellen eines Berichts mit Data Explorer Plugin

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:

Ich denke, Sie müssen nur die Berechnungen ändern, um Ihre Einheiten widerzuspiegeln. Zum Beispiel für GB

-- Abfrage zur Schätzung der Datengröße für jede Kategorie in 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 -- 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_gb DESC
1 „Gefällt mir“

Verstanden, danke!

Sehr grundlegende Frage… meine zeigt praktisch keine Größen an. Kommt das von der S3-Nutzung oder werden Bilder nicht als Upload gezählt? Sicher, die sind relativ klein, ebenso wie einige PDFs und E-Books, aber trotzdem sollten sie größer als 0,001 GB sein.