mysqlでのhaveの使用法は何ですか

WBOY
リリース: 2022-03-01 15:24:42
オリジナル
30047 人が閲覧しました

mysql では、have 句は、グループ化した後にさまざまなデータをフィルタリングするために使用されます。通常、「group by」と組み合わせて使用​​されます。このステートメントは、組み合わせて使用​​できない where キーワードの欠点を補います。集計関数を使用します。

mysqlでのhaveの使用法は何ですか

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql での Have の使用法は何ですか。

SQL に HAVING 句を追加する理由は、WHERE キーワードを集計関数では使用できないためです。

HAVING 句を使用すると、グループ化後にデータの各グループをフィルタリングできます。

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;
ログイン後にコピー

デモ データベース

このチュートリアルでは、RUNOOB サンプル データベースを使用します。

次は、「Websites」テーブルから選択されたデータです:

+----+--------------+---------------------------+-------+---------+
| 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     |
+----+---------------+---------------------------+-------+---------+
ログイン後にコピー

次は、「access_log」Web サイト アクセス レコード テーブルからのデータです:

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インスタンス

今度は、合計訪問数が 200 を超える Web サイトを見つけたいと思います。

次の SQL ステートメントを使用します:

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;
ログイン後にコピー

上記の SQL を実行した出力結果は次のとおりです:

mysqlでのhaveの使用法は何ですか

推奨される学習: mysql ビデオ チュートリアル

以上がmysqlでのhaveの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート