Heim  >  Artikel  >  Datenbank  >  Was nützt es, in MySQL zu haben?

Was nützt es, in MySQL zu haben?

WBOY
WBOYOriginal
2022-03-01 15:24:4230045Durchsuche

In MySQL wird die have-Klausel zum Filtern verschiedener Daten nach der Gruppierung verwendet. Sie wird normalerweise in Verbindung mit „group by“ verwendet. Diese Anweisung gleicht den Mangel aus, dass das Schlüsselwort where nicht in Verbindung mit Aggregatfunktionen verwendet werden kann.

Was nützt es, in MySQL zu haben?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Was nützt „have“ in MySQL?

Der Grund für das Hinzufügen der HAVING-Klausel in SQL ist, dass das Schlüsselwort WHERE nicht mit Aggregatfunktionen verwendet werden kann. Mit der

HAVING-Klausel können wir jede Datengruppe nach der Gruppierung filtern.

SQL MIT Syntax

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;

Demodatenbank

In diesem Tutorial verwenden wir die RUNOOB-Beispieldatenbank.

Das Folgende sind die Daten, die aus der Tabelle „Websites“ ausgewählt wurden:

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

Das Folgende sind die Daten aus der Website-Zugriffsdatensatztabelle „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)

SQL HAVING-Instanz

Jetzt möchten wir Websites mit der Gesamtzahl der Besuche finden größer als 200.

Wir verwenden die folgende SQL-Anweisung:

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;

Führen Sie die obige SQL aus und das Ausgabeergebnis ist wie folgt:

Was nützt es, in MySQL zu haben?

Empfohlenes Lernen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas nützt es, in MySQL zu haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn