شرح صفوف ومحتوى الفقرة
تتطلب معظم التقارير المالية والإدارية عرض مجاميع كل فئة متبوعةً بصف المجموع العام الكلي في نهاية التقرير. بدلاً من تنفيذ استعلامين منفصلين، يمكنك إلحاق العبارة WITH ROLLUP مباشرةً بعد جملة GROUP BY.
- صف التجميع الفائق (Super-Aggregate): عند التجميع بعمود واحد مثل
GROUP BY category WITH ROLLUP، يعرض MySQL صفوف الفئات المعتادة ثم يضيف صفاً أخيراً يمثّل الإجمالي العام لكل الفئات. - علامة
NULLفي عمود التجميع: يضع المحرك القيمةNULLفي عمود التجميع داخل صف المجموع العام، بينما تعرض الدوال التجميعيةCOUNTوSUMوAVGحصيلة الجدول الكلي.
يحسب محرك MySQL صفوف WITH ROLLUP أثناء المسحة التجميعية نفسها دون إعادة قراءة الجدول من القرص.
المجاميع التراكمية WITH ROLLUP ودالة GROUPING وترتيب تنفيذ الاستعلام
مسار التنفيذ المنطقي: 1. FROM ثم 2. WHERE ثم 3. GROUP BY ثم 4. HAVING ثم 5. SELECT ثم 6. DISTINCT ثم 7. ORDER BY ثم 8. LIMIT
SQL
-- Category totals plus automatic Grand Total row at the end
SELECT category,
COUNT(*) AS items_count,
SUM(stock_qty) AS total_units
FROM products
WHERE is_active = 1
GROUP BY category WITH ROLLUP;