Latest web development tutorials

Pernyataan SQL GROUP BY

GROUP BY pernyataan dapat dikombinasikan dengan beberapa fungsi agregat untuk digunakan


GROUP BY pernyataan

GROUP BY pernyataan digunakan untuk menggabungkan fungsi agregat, sesuai dengan satu atau lebih kolom dalam hasil ditetapkan menjadi kelompok-kelompok.

SQL GROUP BY Syntax

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;


Demo Database

Dalam tutorial ini, kita akan menggunakan database contoh w3big.

Berikut ini adalah yang dipilih "Website" data tabel:

+----+--------------+---------------------------+-------+---------+
| 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     |
+----+---------------+---------------------------+-------+---------+

Berikut adalah data "access_log" situs akses catatan tabel:

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 aplikasi sederhana

Kunjungan statistik access_log site_id dari masing-masing:

contoh

SELECT site_id, SUM(access_log.count) AS nums
FROM access_log GROUP BY site_id;

Eksekusi SQL atas hasil output adalah sebagai berikut:



SQL GROUP BY multi-tabel bergabung

Sekarang kita ingin mencari jumlah pesanan untuk setiap pengiriman kurir.

Berikut statistik pernyataan SQL mencatat semua situs yang dikunjungi:

contoh

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;

Eksekusi SQL atas hasil output adalah sebagai berikut: