SQLを使用する際には、データのフィルタリングが非常に重要な操作となります。特に、WHERE句とHAVING句はよく使用されるSQLの機能ですが、これらの違いと適切な使用例について理解することが、効率的なデータ操作につながります。本記事では、WHERE句とHAVING句の基本的な違いから具体的な使用例までを解説します。
目次
基本的な違い
WHERE句とHAVING句は、データをフィルタリングするための機能ですが、基本的な違いがあります。
WHERE句
WHERE句は、データの選択条件を設定する際に使用されます。具体的には、FROM句で指定されたテーブルの行(レコード)をフィルタリングします。
HAVING句
一方で、HAVING句はGROUP BY句でグループ化されたデータに対して条件を設定するために使用されます。つまり、集約関数(SUM, COUNT, AVGなど)を用いた後のデータに対してフィルタリングを行います。
使用例
WHERE句の使用例
以下のような商品テーブルがあるとします。
ProductID | Name | Price |
---|---|---|
1 | Apple | 100 |
2 | Banana | 80 |
3 | Cherry | 200 |
価格が100以上の商品を選びたい場合、以下のようなSQLクエリを使用します。
SELECT * FROM Products WHERE Price >= 100;
HAVING句の使用例
次に、以下のような注文テーブルがあるとします。
OrderID | ProductID | Quantity |
---|---|---|
1 | 1 | 3 |
2 | 2 | 5 |
3 | 1 | 2 |
商品ごとの合計数量が5以上のものを選びたい場合、以下のようなSQLクエリを使用します。
SELECT ProductID, SUM(Quantity) FROM Orders GROUP BY ProductID HAVING SUM(Quantity) >= 5;
まとめ
WHERE句はテーブルの行を直接フィルタリングするのに対して、HAVING句は集約関数を用いた後のデータに対してフィルタリングを行います。適切な場面でこれらの句を使い分けることが、SQLで効率的にデータ操作を行うための鍵です。
created by Rinker
¥4,554
(2024/11/11 10:35:09時点 Amazon調べ-詳細)
コメント