عزيزي/عزيزتي،
أحتاج إلى دعمكم لتنفيذ كود 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
أحتاج إلى دعمكم لعرضه بالتنسيق التالي:
