はじめに
今回は、SQLの基本となる HAVING について解説していきます。
HAVINGとは
HAVING とは、グルーピングされたデータの中からさらに特定の条件でデータを抽出するために使うSQL文です。
基本形は以下です。
SELECT グルーピングをするカラム, 集計関数(集計対象カラム)
FROM テーブル名
WHERE 条件式
GROUP BY グルーピングをするカラム
HAVING 集計関数(集計対象カラム)で条件式
ORDER BY ソート条件;
具体例のsqlを書いてみました!
SECLECT 商品名,sum(売上金額)
FROM test_table
WHERE 商品名 !=`ジャケット`
GROUP BY 商品名
HAVING sum(売上金額)<= 1000000
test_tableのテーブルからジャケット以外の商品名を売上金額10万以下の商品を抽出するということですね〜
WHEREもHAVINGもやっていることはどちらもデータに対して抽出処理をしていますね〜
しかし、タイミングが異なります!
SQLにはコマンドを実行してから実行の順番が決まっていて
1.FROM(どのテーブルの)
2.WHERE(どのデータ)
3.GROUP BY (どうグルーピング(グループ化)し)
4.HAVING (グルーピングしたデータをどう抽出)
5.SELECT (どのカラムを)
6.ORDER BY (どういう順番で表示をするか)
の順番で結果表示をを行っている
終わりに
HAVINGはグループ化したデータの中からどう抽出するのかを選択するSQLでしたね!
WHEREと似ていますが
- WHERE→グループ化する前
- HAVING→グループ化した後
という違いがあります!
sqlにも抽出する順番があるのは初めてしれたので面白かったです!
引き続き、勉強を趣味かさせるべく取り組んでいこうと思います✨
