SQLでHAVING句を使用したグループのフィルタリングの方法

この記事では、SQLのHAVING句を使用したグループのフィルタリングについて詳しく解説します。HAVING句は、SQLクエリのGROUP BY句に続いて使用されることが多く、集計関数と組み合わせてグループに条件を適用する際に用います。具体的なSQLコードを交えながら説明していきます。

目次

はじめに:HAVING句とは

HAVING句は、SQLでデータを集計する際に、特定の条件に一致するグループのみをフィルタリングするために使用されます。WHERE句と似ていますが、WHERE句は行レベルでのフィルタリングを行い、HAVING句はグループレベルでのフィルタリングを行います。

基本的な使用方法

HAVING句は、主にGROUP BY句と組み合わせて使用されます。以下のSQLコードは、HAVING句を使って「売上が1000以上の商品カテゴリ」だけを取得する例です。

SELECT category, SUM(sales)
FROM sales_data
GROUP BY category
HAVING SUM(sales) >= 1000;

SQLクエリの流れ

このSQLクエリは以下の手順で処理されます。

  • FROM句でsales_dataテーブルを選択
  • GROUP BY句でcategoryごとにデータをグループ化
  • HAVING句でSUM(sales)が1000以上のグループをフィルタリング

具体的な例と比較

HAVING句とWHERE句の違いを理解するために、具体的なデータを用いて説明します。

商品カテゴリ売上
食品500
食品600
家電200
家電300
書籍100
書籍150
テーブル名称1:売上データ

WHERE句を使用した例

WHERE句を用いると、行レベルでフィルタリングが行われます。

SELECT category, SUM(sales)
FROM sales_data
WHERE sales >= 500
GROUP BY category;

HAVING句を使用した例

HAVING句を用いると、グループレベルでフィルタリングが行われます。

SELECT category, SUM(sales)
FROM sales_data
GROUP BY category
HAVING SUM(sales) >= 1000;

まとめ

HAVING句は、GROUP BY句に続いて使用され、特定の条件に一致するグループだけを選択する強力なツールです。WHERE句が行レベルでフィルタリングするのに対して、HAVING句はグループレベルでフィルタリングします。この違いを理解することで、より効率的なデータ操作が可能になります。

コメント

コメントする

目次