Kodokon kodokon.com

التجميع: COUNT وSUM وAVG وMIN/MAX وGROUP BY

احسب المجاميع والمتوسطات والإحصاءات لكل مجموعة باستخدام دوال التجميع وGROUP BY.

8 دقيقة · 3 أسئلة

افتح هذا الدرس في Kodokon

تأخذ دالة التجميع عدة صفوف كمدخل وتُرجِع قيمة واحدة: مجموعًا، أو متوسطًا، أو حدًا أدنى... وأبسطها COUNT(*)، التي تعدّ الصفوف. وتتكامل بشكل طبيعي مع WHERE: تصفّي قاعدة البيانات أولًا، ثم تعدّ.

SQL
SELECT COUNT(*) FROM books;

SELECT COUNT(*) FROM books WHERE genre = 'sf';
7 كتب إجمالًا، منها 4 خيال علمي

تُطبَّق دوال التجميع الأساسية الأخرى على عمود: يجمع SUM(price)، ويحسب AVG(price) المتوسط، ويجد MIN(year) وMAX(year) أصغر القيم وأكبرها. وتمنح الكلمة المفتاحية AS اسمًا بديلًا (alias)، أي اسمًا سهل القراءة للعمود المحسوب.

SQL
SELECT SUM(price) AS total FROM books;

SELECT AVG(price) AS avg_sf
FROM books
WHERE genre = 'sf';

SELECT MIN(year), MAX(year) FROM books;
المجموع: 52.4؛ متوسط sf: 8.375؛ 1888 و1965

وللحصول على إحصائية لكل فئة؟ ذلك هو دور GROUP BY: تجمّع قاعدة البيانات الصفوف التي تتشارك القيمة نفسها (النوع هنا)، ثم تطبّق دالة التجميع على كل مجموعة. وتحتوي النتيجة على صف واحد لكل مجموعة.

SQL
SELECT genre, COUNT(*) AS nb
FROM books
GROUP BY genre;

SELECT genre, AVG(price) AS avg_price
FROM books
GROUP BY genre;
sf: 4 كتب؛ aventure: 2؛ conte: 1

اختبار المعرفة

تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.

  1. ماذا يُرجِع SELECT COUNT(*) FROM books;؟
    • عدد الأعمدة في الجدول
    • عدد الصفوف في الجدول
    • قائمة بكل الكتب
  2. أيّ دالة تحسب متوسط سعر الكتب؟
    • SUM(price)
    • AVG(price)
    • MEAN(price)
    • MAX(price)
  3. ماذا يُنتِج SELECT genre, COUNT(*) FROM books GROUP BY genre;؟
    • صف واحد لكل كتاب، مع نوعه
    • صف واحد بإجمالي عدد الكتب
    • صف واحد لكل نوع، مع عدد الكتب في ذلك النوع