English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

جملة GROUP BY SQL

في هذا الدرس، ستتعلم كيفية تجميع الصفوف بناءً على القيم في الصف

الصفوف المجمعة

جملة GROUP BY معSELECTالجملة والوظائف التجميعباستخدامها معًا، لتجميع الصفوف معًا بناءً على القيم العامة

للتفاهم البسيط لذلك، دعنا نرى ما يليemployeesوdepartments表。

+--------+--------------+------------+---------+
| emp_id | emp_name     | hire_date  | dept_id |
+--------+--------------+------------+---------+
| | 1 | إيثان هانت | 2001-05-01 | | 4 |
| | 2 | توني مونتانا | 2002-07-15 | | 1 |
| | 3 | سارة كونر | 2005-10-18 | | 5 |
| | 4 | ريك ديكارد | 2007-01-03 | | 3 |
| | 5 | مارتن بلاك | 2008-06-24 | |
+--------+--------------+------------+---------+

+---------+------------------+
| dept_id | اسم القسم |
+---------+------------------+
| | 1 | إدارة |
| | 2 | خدمة العملاء |
| | 3 | المالية |
| | 4 | الموارد البشرية |
| | 5 | مبيعات | |
+---------+------------------+
جدول: employees
جدول: departments

الآن، ليس فقط البحث عن موظفين واسم قسمهم، بل البحث عن عدد الموظفين في كل قسم.

للجداول الصغيرة، يمكنك ببساطة تطبيقالانضمام الأيسروسيتم حساب عدد الموظفين، ولكن إذا كان هناك ألف موظف في الجدول، فإن ذلك لن يكون سهلاً.

في هذه الحالة، يمكن استخدام جملة GROUP BY مع جملة SELECT كما يلي:

SELECT t1.dept_name, count(t2.emp_id) AS total_employees
FROM departments AS t1 LEFT JOIN employees AS t2
ON t1.dept_id = t2.dept_id
GROUP BY t1.dept_name;

إذا تم تنفيذ الجملة أعلاه، فستحصل على النتيجة التالية:

+-------------------+-----------------+
| اسم القسم | | عدد الموظفين |
+-------------------+-----------------+
| إدارة | | | | | 1 |
| Customer Service   |                  |  0          |
| Finance            |                  |  1          |
| Human Resources    |                  |  1          |
| Sales              |                  |  1          |
+-------------------+-----------------+

في الفصل التالي، ستتعلم كيفية استخدام جملة HAVING وGROUP BY لتعيين شروط البحث للجماعات أو التجميعات.

ملاحظة:في SQL SELECTالجملة، GROUP BY الجملة يجب أن تظهر بعدWHEREبعد الجملة، ويتحقق فيORDER BYمن قبل.