Maison > base de données > tutoriel mysql > le corps du texte

Quelle est l'utilité d'avoir dans MySQL

WBOY
Libérer: 2022-03-01 15:24:42
original
30047 Les gens l'ont consulté

Dans MySQL, la clause have est utilisée pour filtrer diverses données après le regroupement. Elle est généralement utilisée en conjonction avec "group by". Cette instruction compense les lacunes du mot-clé Where qui ne peut pas être utilisé en conjonction avec des fonctions d'agrégation.

Quelle est l'utilité d'avoir dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.

À quoi sert have dans MySQL ?

La raison de l'ajout de la clause HAVING dans SQL est que le mot-clé WHERE ne peut pas être utilisé avec des fonctions d'agrégation. La clause

HAVING nous permet de filtrer chaque groupe de données après regroupement.

Syntaxe SQL HAVING

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
Copier après la connexion

Base de données de démonstration

Dans ce tutoriel, nous utiliserons l'exemple de base de données RUNOOB.

Voici les données sélectionnées dans la table "Sites Web" :

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+
Copier après la connexion

Ce qui suit sont les données de la table d'enregistrement d'accès au site Web "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)
Copier après la connexion

Instance SQL HAVING

Maintenant, nous voulons trouver des sites Web avec un total de visites supérieur à 200.

Nous utilisons l'instruction SQL suivante :

SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;
Copier après la connexion

Le résultat de l'exécution du SQL ci-dessus est le suivant :

Quelle est lutilité davoir dans MySQL

Apprentissage recommandé : Tutoriel vidéo MySQL

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!

Étiquettes associées:
source:php.cn
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