تُستخدم جملة GROUP BY لتجميع الصفوف التي لها نفس القيمة في عمود معين، ثم تطبيق دوال تجميعية مثل COUNT وSUM وAVG على كل مجموعة على حدة. تُستخدم HAVING لتصفية المجموعات بعد التجميع.

التجميع البسيط

SELECT country, COUNT(*) AS عدد_المستخدمين
FROM users
GROUP BY country;

التجميع مع SUM

SELECT category, SUM(price) AS الإجمالي
FROM products
GROUP BY category;

HAVING لتصفية المجموعات

WHERE لا تعمل مع الدوال التجميعية، لذا نستخدم HAVING لتصفية النتائج المجمّعة.

SELECT country, COUNT(*) AS العدد
FROM users
GROUP BY country
HAVING COUNT(*) > 10;

التجميع حسب عدة أعمدة

SELECT country, city, COUNT(*)
FROM users
GROUP BY country, city;