دوال التجميع في SQL، وGROUP BY، وHAVING، والتجميعات المميزة والمتقدمة، مع قيم الإرجاع وأمثلة من سطر واحد على جدول الطلبات.
دوال التجميع تدمج صفوفًا كثيرة في نتيجة قياسية واحدة. تُقسّم GROUP BY الصفوف حسب المفتاح قبل التجميع، وتُصفّي HAVING المجموعات بعد التجميع. تُتخطى قيم NULL المدخلة في كل دالة تجميع عدا COUNT(*).
جدول مرجعي · 29 إدخالات
دوال التجميع في SQLExplained
29 of 29 rows
قياسية
عدد قيم الإدخال غير NULL؛ وتعدّ COUNT(*) جميع الصفوف.
SELECT COUNT(*) FROM orders
مجموع القيم الرقمية غير NULL. تُرجع NULL عند مجموعة فارغة.
SELECT SUM(total) FROM orders
المتوسط الحسابي للقيم الرقمية غير NULL، مع تجاهل قيم NULL المدخلة.
SELECT AVG(total) FROM orders
أصغر قيمة غير NULL عبر أي نوع قابل للمقارنة.
SELECT MIN(total) FROM orders
أكبر قيمة غير NULL عبر أي نوع قابل للمقارنة.
SELECT MAX(total) FROM orders
مُجمَّعة
تقسّم صفوف الإدخال حسب المفتاح؛ تعمل دوال التجميع على كل قسم على حدة.
SELECT user_id, SUM(total) FROM orders GROUP BY user_id
شرط يُقيَّم لكل مجموعة بعد التجميع، ويحل محل WHERE مع الدوال التجميعية.
SELECT user_id, COUNT(*) FROM orders GROUP BY user_id HAVING COUNT(*) > 5
عدة تجميعات تُحسب لكل مجموعة في مسار واحد.
SELECT user_id, COUNT(*), SUM(total), AVG(total) FROM orders GROUP BY user_id
تحسب عدة تجميعات في عبارة واحدة؛ ترجع المفاتيح خارج المجموعة الحالية قيمة NULL.
SELECT user_id, region, SUM(total) FROM orders GROUP BY GROUPING SETS ((user_id), (region), ())