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 |
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句は非常に有用です。この記事で紹介した具体的なコード例を参考に、ぜひ実際の問題解決に活用してください。
created by Rinker
¥4,554
(2024/11/21 10:54:58時点 Amazon調べ-詳細)
コメント