بيان SQL GROUP BY
GROUP BY بيان يمكن دمجها مع بعض وظائف الكلي لاستخدام
GROUP BY بيان
يستخدم GROUP BY بيان الجمع بين وظائف الكلي، وفقا لعمود واحد أو أكثر في مجموعة النتائج في مجموعات.
SQL GROUP BY بناء الجملة
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
قاعدة بيانات تجريبي
في هذا البرنامج التعليمي، سوف نستخدم نموذج قاعدة البيانات w3big.
وفيما يلي تحديد "مواقع" بيانات الجدول:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 本教程 | http://www.w3big.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
هنا هي البيانات "access_log" الجدول الموقع سجل وصول:
mysql> SELECT * FROM access_log; +-----+---------+-------+------------+ | aid | site_id | count | date | +-----+---------+-------+------------+ | 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 | +-----+---------+-------+------------+ 9 rows in set (0.00 sec)
GROUP BY تطبيق بسيط
مرة إحصاءات access_log site_id من كل من:
أمثلة
SELECT site_id, SUM(access_log.count) AS
nums
FROM access_log GROUP BY site_id;
FROM access_log GROUP BY site_id;
تنفيذ SQL أعلاه نتائج الإخراج هي كما يلي:
مجموعة SQL BY متعددة الجدول تنضم
الآن نريد أن العثور على عدد من أوامر لكل تسليم الحقيبة.
وتسجل الإحصاءات عبارة SQL التالية جميع المواقع التي تمت زيارتها:
أمثلة
SELECT Websites.name,COUNT(access_log.aid) AS nums FROM
access_log
LEFT JOIN Websites
ON access_log.site_id=Websites.id
GROUP BY Websites.name;
LEFT JOIN Websites
ON access_log.site_id=Websites.id
GROUP BY Websites.name;
تنفيذ SQL أعلاه نتائج الإخراج هي كما يلي: