GROUP BY يجمع الصفوف التي لها القيمة نفسها في مجموعات، وSUM() يحسب المجموع لكل مجموعة.
SELECT customer_id, SUM(total_amount) AS total_paid
FROM orders
GROUP BY customer_id;
هذا الاستعلام يحسب إجمالي المبالغ المدفوعة لكل عميل. إذا كان للعميل رقم 7 ثلاثة طلبات بقيم 50 و30 و20، فسيظهر له سطر واحد بقيمة 100.
ولمعرفة العميل الذي دفع أكثر؟
الاستعلام السابق لا يعطيك ذلك وحده. أضف ترتيبًا وحدًّا:
SELECT customer_id, SUM(total_amount) AS total_paid
FROM orders
GROUP BY customer_id
ORDER BY total_paid DESC
LIMIT 1;
ودوال أخرى تعمل مع GROUP BY: COUNT() وAVG() وMAX() وMIN().