Latest web development tutorials

SQL GROUP BY

GROUP BY dichiarazione può essere combinata con alcune funzioni di aggregazione da utilizzare


GROUP BY

GROUP BY istruzione viene utilizzata per combinare funzioni aggregate, secondo una o più colonne nel set di risultati in gruppi.

SQL GROUP BY sintassi

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


Il database demo

In questo tutorial, useremo database di esempio w3big.

Il seguente è un selezionati "siti web" dati della tabella:

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

Ecco i dati "access_log" tabella di accesso al sito di registrazione:

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 semplice applicazione

Statistiche delle visite access_log site_id di ogni:

Esempi

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

Eseguire SQL sopra i risultati di uscita sono i seguenti:



SQL GROUP BY multi-tavolo si unisce

Ora vogliamo trovare il numero di ordini per ogni consegna del corriere.

Le seguenti statistiche istruzione SQL registra tutti i siti visitati:

Esempi

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;

Eseguire SQL sopra i risultati di uscita sono i seguenti: