الدعم لاستخراج تقرير باستخدام مكون 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

أحتاج إلى دعمكم لعرضه بالتنسيق التالي:

أعتقد أنك تحتاج فقط إلى تغيير العمليات الحسابية لتعكس وحداتك. على سبيل المثال، بالنسبة لـ 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
إعجاب واحد (1)

تم، شكرا لك!

[اقتباس=“Lilly، المنشور: 2، الموضوع: 338040”]
للمملكة المتحدة
[/اقتباس]

سؤال بمستوى 101 للغاية… يظهر لي أن حجم الملفات عمليًا صفر. هل يأتي هذا من استخدام S3 أم أن الصور لا تُحتسب كتحميل؟ بالتأكيد، هذه الملفات صغيرة نسبيًا، وكذلك بعض ملفات PDF والكتب الإلكترونية، ولكن مع ذلك يجب أن يكون حجمها أكبر من 0.001 جيجابايت.