HAVING
「HAVING」とは、グループ化した後に条件を定めて対象を絞ることができます。
条件を定めて絞るという意味では「WHERE」と同じですが、異なるのはタイミングです。違いをきちんと理解しましょう。
WHERE ・・・ グループ化する前のデータを用いてに条件を絞る
HAVING ・・・ グループ化の後にデータを用いて条件を絞る
HAVINGのPOINT🤗
① HAVINGを用いたSQLの構文の書き方は下記の通りです。
SELECT 集計関数
FROM テーブル名
WHERE 条件
GROUP BY カラム名,カラム名
HAVING 条件② 上記の構文の解釈の順番は下記の通りです。
① FROM データを取得するテーブル名を指定します。 ② WHERE テーブル名から条件を指定し対象を絞ります。 ③ GROUP BY WHEREで絞られた条件の中で、グループを分けをします。 ④ HAVING グループ分けした後のデータに対して、条件を指定し対象を絞ります。 ⑤ SELECT グループ化したカラム名と集計関数(COUNT、SUM、AVG 、MAX、MIN)の摘要結果を取得します。 ※ SQLではコードの上から順に適用される訳ではないので気をつけましょう
実際の例文をみてみましょう😄♫
データベース【purchases】
id | human | name | category | price | date |
1 | けんと | キンちゃんカレー | 食費 | 500 | 2022-04-01 |
2 | ゆーた | おにぎり(キンちゃん味) | 食費 | 150 | 2022-04-01 |
3 | けんと | キンちゃんアイス | 食費 | 200 | 2022-06-16 |
4 | けんと | CDキンちゃん | 音楽 | 1000 | 2022-06-16 |
【テキストエディタ】
SELECT SUM(price), date
FROM purchases
WHERE human = “けんと”
GROUP BY date
HAVING SUM(price) > 1000
;
【実行結果】
SUM(price) | date |
1200 | 2022-06-16 |
学習の感想
blog作成時間6:00スタート 6:45エンド
所要時間45分
今日はHAVINGを学習しました😊
WHEREと同じだけどタイミングが違うっていうね💡
WHEREの意味をちゃんと理解していれば今回は簡単だったかもしれないですね💡
ちなみにHAVINGの英単語の意味は「持っている」です。
最終的に持っているデータはこれです。的な意味で名付けられたのかな?
そしてWHEREの意味はは「どこ」だから、、、
どこ(WHERE)のデータを使って、最終的に持っている(HAVING)データはこれです💡
的な感じで覚えると覚えやすいかも💡(強引?ww)
それでわっ☺️
いつか誰かの誰かのためになりますように☺️✨