SQL MEMPUNYAI
SQL HAVING klausa
HAVING klausa
Sebab untuk menambah HAVING klausa dalam SQL ialah kata kunci WHERE Tidak Boleh digunakan dengan fungsi agregat.
Klausa HAVING membolehkan kami menapis setiap kumpulan data selepas dikumpulkan.
SQL MEMPUNYAI sintaks
PILIH column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name_name_VING a ) nilai operator;
FROM table_name
WHERE column_name operator value
GROUP BY column_name_name_VING a ) nilai operator;
Pangkalan data demoDalam tutorial ini, kami akan menggunakan pangkalan data sampel php. Berikut ialah data yang dipilih daripada jadual "Laman Web":
+----+--------------+-- - ------------------------+------+---------+
| id | |. url --------+----- | ://www.google.cm/ | 1 |. Amerika Syarikat |. 2 | |
|. 4 |. http://weibo.com/ | |. stackoverflow |. - -------------------------+---------+
ContohSELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
Sekarang kami mahu cari jumlah lawatan lebih daripada 200 tapak web, dan kedudukan alexa kurang daripada 200.
ContohSELECT Websites.name, SUM(access_log.count) AS nums FROM
Tapak web
|. 4 |. http://weibo.com/ | |. stackoverflow |. - -------------------------+---------+
Berikut ialah data jadual rekod akses laman web "access_log":
mysql> SELECT * FROM access_log;
+-----+------ --- +-------+-----------+
|bilangan_tapak |
+-----+---. -----------+----------+
| 1 | 3 |. 2016-05-13 |. 10 | |. 2016 -05-15 -05 -16 |
|. 9 |. 3 | -- ---------+
9 baris dalam set (0.00 saat)
SQL HAVING instance
Sekarang kami ingin mencari jumlah lawatan Lebih daripada 200 laman web.
Kami menggunakan pernyataan SQL berikut:
+-----+------ --- +-------+-----------+
|bilangan_tapak |
+-----+---. -----------+----------+
| 1 | 3 |. 2016-05-13 |. 10 | |. 2016 -05-15 -05 -16 |
|. 9 |. 3 | -- ---------+
9 baris dalam set (0.00 saat)
SQL HAVING instance
Sekarang kami ingin mencari jumlah lawatan Lebih daripada 200 laman web.
Kami menggunakan pernyataan SQL berikut:
ContohSELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)KUMPULAN MENGIKUT Websites.name
MINYAK SUM(access_log.count) > 200;Hasil output untuk melaksanakan SQL di atas adalah seperti berikut:
Sekarang kami mahu cari jumlah lawatan lebih daripada 200 tapak web, dan kedudukan alexa kurang daripada 200.
Kami menambah klausa WHERE biasa pada pernyataan SQL:

DALAM JOIN access_log
ON Websites.id=access_log.site_idWHERE Websites.alexa < 200
KUMPULAN MENGIKUT Websites.nameMINYAK
SUM(access_log.count) >
Hasil keluaran untuk melaksanakan SQL di atas adalah seperti berikut:
