GROUPE SQL PAR
Instruction
SQL GROUP BY
L'instruction GROUP BY peut être combinée avec certaines fonctions d'agrégation pour utiliser
Instruction GROUP BY
L'instruction GROUP BY est utilisée conjointement avec des fonctions d'agrégation pour regrouper l'ensemble de résultats en fonction d'une ou plusieurs colonnes.
Syntaxe SQL GROUP BY
SELECT nom_colonne, fonction_agrégat (nom_colonne)
FROM nom_table
WHERE valeur de l'opérateur nom_colonne
GROUP BY nom_colonne;
FROM nom_table
WHERE valeur de l'opérateur nom_colonne
GROUP BY nom_colonne;
Base de données de démonstration
Dans ce tutoriel, nous utiliserons un exemple de base de données php.
Voici les données sélectionnées dans le tableau "Sites Web" :
+----+--------------+-- - --------------+------+---------+
| identifiant | | url | | États-Unis
| 2 | Taobao | https://www.taobao.com/ | |
| Weibo | http://weibo.com/ |
| | stackoverflow | http://stackoverflow.com/ | 0 |
+----+--------------+--------- - ----------------+------+---------+
GROUPE PAR application simplestatistiques access_log visites à chacun site_id :
SQL GROUP BY Multi-Table JoinNous souhaitons maintenant connaître le nombre de commandes livrées par chaque livreur. L'instruction SQL suivante compte le nombre d'enregistrements visités par tous les sites Web :
| identifiant | | url | | États-Unis
| 2 | Taobao | https://www.taobao.com/ | |
| Weibo | http://weibo.com/ |
| | stackoverflow | http://stackoverflow.com/ | 0 |
+----+--------------+--------- - ----------------+------+---------+
Voici les données de la table d'enregistrement d'accès au site Web "access_log" :
mysql> SELECT * FROM access_log;
+-----+------ --- +-------+------------+
| aide site_id | compte date |
+-----+--- --- ---+-------+------------+
| 1 | 45 | 2016-05-10 |
| 3 | 100 | 2016-05-13 |
| 3 | 2016-05-14 |
| 4 | 2016-05-14 |
| | 2016-05-14 |
| 6 | 13 | 2016-05-15 |
| -05 -16 |
| 9 | 201 | 2016-05-17 |
+-----+---------+------+- -- ---------+
9 lignes dans l'ensemble (0,00 sec)
+-----+------ --- +-------+------------+
| aide site_id | compte date |
+-----+--- --- ---+-------+------------+
| 1 | 45 | 2016-05-10 |
| 3 | 100 | 2016-05-13 |
| 3 | 2016-05-14 |
| 4 | 2016-05-14 |
| | 2016-05-14 |
| 6 | 13 | 2016-05-15 |
| -05 -16 |
| 9 | 201 | 2016-05-17 |
+-----+---------+------+- -- ---------+
9 lignes dans l'ensemble (0,00 sec)
GROUPE PAR application simplestatistiques access_log visites à chacun site_id :
Instance
SELECT site_id, SUM(access_log.count) AS
nums
FROM access_log GROUP BY site_id;
Le résultat de l'exécution du SQL ci-dessus est le suivant : 
SQL GROUP BY Multi-Table JoinNous souhaitons maintenant connaître le nombre de commandes livrées par chaque livreur. L'instruction SQL suivante compte le nombre d'enregistrements visités par tous les sites Web :
Instance
SELECT Websites.name,COUNT(access_log.aid) AS nums FROM
access_log
LEFT JOIN Sites Web
ON access_log.site_id=Websites.id
GROUP BY Websites.name;
Le résultat de l'exécution du code SQL ci-dessus est le suivant :ON access_log.site_id=Websites.id
GROUP BY Websites.name;
