SQL Server

SQL Server ポケモンのデータで学ぶSQL GROUP BY句を使ってみよう3。グループを条件で絞り込む方法と処理順序について。

今回のテーマ

こんにちは、かっぱちゃんです。

今回は下記の記事の続きです。前回の記事ではGROUP BYと一緒に使用するCOUNT句などの使い方を学びました。今回はGROUP BY句と一緒に使用するHAVING句を使っていきましょう!

こちらもCHECK

SQL Server ポケモンのデータで学ぶSQL GROUP BY句を使ってみよう2。COUNT句、MAX句、MIN句、SUM句、AVG句を淡々と使っていきます。

今回のテーマContents1 今回のテーマ2 COUNT句の使い方3 MAX句、MIN句4 AVG句、SUM句5 ORDER BY句と組み合わせてみる6 まとめ こんにちは、かっぱちゃんです。 今回 ...

続きを見る

ポケモンデータのダウンロードは下記の記事からお願いします。

こちらもCHECK

SQL Server ポケモンのデータで学ぶSQL データの準備編

今回のテーマContents1 今回のテーマ2 ポケモンデータのダウンロード3 Sql Server Management Studioでの設定4 ポケモンデータのテーブルについて5 各テーブルの属性 ...

続きを見る

GROUPBY句とセットで使用するOUNT句、MAX句、MIN句、SUM句、AVG句についてです!GROUPBY句と一緒に全部覚えてしまいましょう!!

それでは、早速やっていきましょう!

KappaChan
今回も色々なデータがほしいかっぱ!

SQLServerの他の記事はこちら

HAVING句の使い方

かっぱちゃんがグループ化について下記のように考えているようです。

KappaChan
タイプでグループ化した中で10匹以上ポケモンがいるグループを知りたいかっぱ!

このようにグループ単位で条件を絞り込むために使用するのがHAVING句です。

早速クエリをみてみましょう!

 出力結果
タイプ1 タイプ2 ポケモンの件数
エスパー NULL 10
でんき NULL 12
どく NULL 10
ノーマル NULL 23
ほのお NULL 16
みず NULL 25
ノーマル ひこう 10

HAVING句では、10以上のポケモン数のグループを出力して!と命令しています。

COUNT句だけでなく、MAX句、MIN句、SUM句、AVG句でも使用できます。

試しにかっぱちゃんの下記の要望も応えてみましょう!

KappaChan
すばやさが110以上のポケモンが所属するタイプグループを出力したいかっぱ!

クエリは下記のようになります。

 出力結果
タイプ1 タイプ2
エスパー NULL
じめん NULL
でんき NULL
ノーマル NULL
みず エスパー
あく こおり
ゴースト どく
いわ ひこう
エスパー ひこう
くさ ひこう
どく ひこう
ノーマル ひこう

各タイプのポケモン達を当てられる方はポケモン対戦ガチでやってる人が多いでしょうね!!

このクエリのHAVINGでは、グループ内で最大のすばやさのポケモンが110以上のみ出力して!

命令しています。

HAVING句の使い方は以上です!

C#のエンジニアであれば、絶対買ってほしい本2選

C#の初心者にオススメ!基本はこの本で抑えよう!


Linqの使い方が沢山載っている。中級者以上の方にオススメ!

WHERE句とHAVING句の処理の順序について

今回はHAVING句について学びましたが、

一つ処理順序について考えてみましょう!

下記のようなクエリがあった場合、処理順序はどのような順番になるのでしょうか?

KappaChan
処理の順序について考えたことなかったかっぱ!

上記のクエリの流れについて1つずつ考えていきましょう!

step
1
WHERE句:とくこうが100以上のポケモンのみ抽出

step
2
GROUP BY句:とくこうが100以上のポケモンの中からタイプ1とタイプ2でグループ化

step
3
HAVING句:グループ化した最大すばやさのポケモンが110以上のグループのみ抽出

step
4
ORDER BY句:グループ内で最大のとくこうのポケモン順に並び替え

step
5
SELECT句:並び替えた順で出力

上記のような順になっています。

グループ化する前に条件を絞りたい場合はWHERE句で行い、グループ化した後の条件はHAVINGで行いましょう!!

因みにこのクエリの結果は下記のようになります。

 出力結果
タイプ1 タイプ2 最大のとくこう
でんき NULL 115
ゴースト どく 130
エスパー NULL 154

まとめ

今回はHAVING句の使い方と各構文の処理順序について考えてきました。

処理順序についてはSQLを考える上で結構混乱する可能性もあるので、ぜひ覚えましょう!!

今回の記事でGROUP BY句の使い方については以上とします。

次はレコードの挿入、更新、削除方法について学んでいきましょう。

KappaChan
最後までみてくれてありがとうかっぱ!!

 

 

プログラミング能力を上げたい方は是非オンラインのプログラミング教室も検討してみてくださいね!!

一人で独学をするよりもプロからオンラインでプログラミングを教えてもらった方が10倍は効率いいです!!

私が厳選したオススメのオンライン教室を貼っておきます!!どちら共、エンジニアとしての就職までサポートしてくれる素晴らしい教室です。キャリアなどの個別相談は無料ですよ!!

申し込みは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

-SQL Server

X