English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية تجميع الصفوف بناءً على القيم في الصف
جملة 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 لتعيين شروط البحث للجماعات أو التجميعات.