SQLのHAVING句とGROUP BYの効果的な組み合わせ方

SQLにおけるデータ分析の基本といえるGROUP BY。その結果に更に条件を適用する際に用いるのがHAVING句です。この記事では、HAVING句とGROUP BYをどのように組み合わせて使えるのか、具体的なコード例とともに詳しく解説します。

目次

GROUP BYとHAVING句の基礎

GROUP BY句は、特定のカラムを基にしてデータをまとめるためのSQL文です。一方、HAVING句はGROUP BYでまとめた後のデータに対して条件を適用する役割を果たします。

GROUP BYの基本形

以下は、GROUP BYを使用した基本的なSQL文です。

SELECT department, COUNT(*) 
FROM employees 
GROUP BY department;

HAVING句の基本形

HAVING句は、GROUP BYで集約した結果に条件を適用します。以下はその基本形です。

SELECT department, COUNT(*) 
FROM employees 
GROUP BY department 
HAVING COUNT(*) > 10;

具体的な使用例

ここでは、日本語のサンプルデータを用いてHAVING句とGROUP BYの使い方を具体的に解説します。

サンプルテーブル

まず、使用するテーブルのデータ構造を確認しましょう。

従業員ID部署給与
1開発300000
2開発280000
3人事220000
4開発270000
サンプルテーブル1

GROUP BYとHAVING句の組み合わせ

このテーブルを用いて、部署ごとに給与の平均が250,000以上のデータをフィルタリングします。

SELECT 部署, AVG(給与)
FROM サンプルテーブル
GROUP BY 部署
HAVING AVG(給与) >= 250000;

結果の解釈

このSQL文によって得られる結果は以下のようになります。

部署平均給与
開発283333
結果テーブル

ポイント

この例から、HAVING句はGROUP BYで集約した後の結果に対して条件を適用できることがわかります。このように、HAVING句とGROUP BYを効果的に組み合わせることで、複雑なデータ分析も柔軟に行うことができます。

まとめ

HAVING句とGROUP BYの組み合わせによって、より高度なデータ分析が可能です。特に、GROUP BYで得られた集約データに対して条件を指定したい場合にHAVING句は非常に有用です。この記事で紹介した具体的なコード例を参考に、ぜひ実際の問題解決に活用してください。

コメント

コメントする

目次