Latest web development tutorials

بيان 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;


قاعدة بيانات تجريبي

في هذا البرنامج التعليمي، سوف نستخدم نموذج قاعدة البيانات 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;

تنفيذ 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;

تنفيذ SQL أعلاه نتائج الإخراج هي كما يلي: