Maison > base de données > tutoriel mysql > Quelle est la différence entre SELECT DISTINCT et GROUP BY dans MySQL ?

Quelle est la différence entre SELECT DISTINCT et GROUP BY dans MySQL ?

WBOY
Libérer: 2023-09-18 23:53:07
avant
1259 Les gens l'ont consulté

MySQL 中 SELECT DISTINCT 与 GROUP BY 的区别?

SELECT DISTINCT peut être utilisé pour donner différentes valeurs. Utilisez-le pour supprimer les enregistrements en double et Il peut également être utilisé avec des fonctions d'agrégation. Par exemple : MAX, AVG, etc. Ceci peut être appliqué sur une seule colonne.

En ce moment, je crée un tableau pour utiliser SELECT DISTINCT sur les colonnes. Créer un tableau Aide pour la commande CREATE -

mysql> CREATE TABLE DistinctDemo
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.64 sec)
Copier après la connexion

Insérer des enregistrements -

mysql> INSERT into DistinctDemo values(1,'John');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(2,'John');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into DistinctDemo values(3,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(4,'John');
Query OK, 1 row affected (0.15 sec)

mysql> INSERT into DistinctDemo values(5,'David');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(6,'Bob');
Query OK, 1 row affected (0.16 sec)
Copier après la connexion

Afficher tous les enregistrements à l'aide de la commande SELECT. La requête est la suivante -

mysql> SELECT * from DistinctDemo;
Copier après la connexion

Après avoir exécuté la requête ci-dessus, nous obtiendrons le résultat suivant −

+------+-------+
| id   | name  |
+------+-------+
| 1    | John  |
| 2    | John  |
| 3    | Bob   |
| 4    | John  |
| 5    | David |
| 6    | Bob   |
+------+-------+
6 rows in set (0.00 sec)
Copier après la connexion

Ci-dessus, nous avons six enregistrements dans lesquels John et Bob sont des doublons. Nous pouvons appliquer DISTINCT à Supprimez les enregistrements en double. La syntaxe est la suivante -

SELECT distinctcolumn_name from yourTableName order by column_name;
Copier après la connexion

Maintenant, j'applique la requête ci-dessus pour supprimer les doublons -

mysql> SELECT distinct name from DistinctDemo;
Copier après la connexion

Ci-dessous se trouve le résultat

+-------+
| name  |
+-------+
| John  |
| Bob   |
| David |
+-------+
3 rows in set (0.00 sec)
Copier après la connexion

Sélectionner le groupe par peut être utilisé pour obtenir des données de différentes colonnes et les regrouper en une ou plusieurs colonne. Cela peut également être appliqué avec la fonction d'agrégation. Par exemple : SUM, AVG etc.

Tout d'abord, je crée une table avec l'aide de la commande CREATE -

. colonne Cela peut également être utilisé avec des fonctions d’agrégation. Par exemple : SOMME, AVG, etc.

Tout d'abord, je crée une table à l'aide de la commande CREATE −

mysql> CREATE table GroupDemo1
-> (
-> id int,
-> name varchar(100),
-> address varchar(100)
-> );
Query OK, 0 rows affected (0.68 sec)
Copier après la connexion

Après avoir créé la table, j'insère les enregistrements dans la table comme indiqué ci-dessous −

mysql> INSERT into GroupDemo1 values(1,'John','US');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into GroupDemo1 values(2,'Bob','UK');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into GroupDemo1 values(3,'David','US');
Query OK, 1 row affected (0.12 sec)

mysql> INSERT into GroupDemo1 values(4,'David','US');
Query OK, 1 row affected (0.15 sec)
Copier après la connexion

Maintenant, nous pouvons afficher tous les enregistrements à l'aide de la commande SELECT −

mysql> SELECT * from GroupDemo1;
Copier après la connexion

Ce qui suit sont les résultats -

+------+-------+---------+
| id   | name  | address |
+------+-------+---------+
| 1    | John  | US      |
| 2    | Bob   | UK      |
| 3    | David | US      |
| 4    | David | US      |
+------+-------+---------+
4 rows in set (0.00 sec)
Copier après la connexion

J'appliquerai GROUP BY pour savoir combien de fois la même adresse se produit. C'est ici Syntaxe −

SELECT column_name1,......N aggregate function( ) from yourTableName group by
column_name;
Copier après la connexion

Appliquons la syntaxe ci-dessus à GROUP BY -

mysql> SELECT address, count(*) from GroupDemo1 group by address;
Copier après la connexion

Ce qui suit est le résultat -

+---------+----------+
| address | count(*) |
+---------+----------+
| US      | 3        |
| UK      | 1        |
+---------+----------+
2 rows in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal