データ(SQL)

【SQL】IN句まとめ(複数条件や否定)~where in~

本記事概要

対象者

  • SQLを使ったデータ分析を勉強されている方
  • 特に非エンジニアのマーケティング担当者やPMの方

本記事の目的

  • IN句を使えるようになる!

筆者

IN句の使い方解説(否定,複数)where in~

countryテーブル概要

まずは今回使用するcountryテーブルの中身を見てください。
IDと国名が入っている、非常にシンプルなテーブルです。
合計で109の国が格納されてます。

IN句の使い方

では上記のcountryテーブルから「Australia」「Japan」「Spain」を抽出したい場合どう書きますか?

もしIN句を知らなければ、

のように「or」で条件を繋げる必要があります。

もちろんこれで問題ないのですが、冗長ですよね。

そこでこの複数の「or」を一つにまとめる時に使う関数がIN句になります。

もちろん結果は同じになります。
IN句は簡単かつ非常に便利なので頻出です。

IN句(否定)

これも非常に簡単です。

where 該当カラム not in(‘要素1’,’要素2’)

で使うことができます。

ただし「NOT IN」はすべてのレコードを見に行ってしまいますので、重い処理になりがちなので注意が必要です。

そのためWith句を使って、事前にある程度レコード数を少なくしたテーブルから、使用するなどの配慮が必要になります。

With句についても書いているので、ご確認ください。

ではNOT INの具体例として、109の国のうち、「Australia」「Japan」「Spain」の3つを、「NOT IN」を使って、除外した後、COUNTしてみます。

しっかり106となってますね。

おわりに

IN句は非常に便利ですので、覚えておいて損はない構文になります。

ぜひORを複数書き続けるようなタイムロス生活から卒業して、スマートなIN生活を送っていただけると幸いです。

またこのようにSQLの関数について記事を書いているので、合わせてみて行ってください。

■SQLの勉強を始めたばかりの方におすすめ
【SQL入門】データ分析に必須なSQL文とは?基本構文を6つ紹介

■SQL中級者におすすめ
【SQL】Window関数でデシル分析をする

【SQL】CASE式で効率よく集計する(CASE WHEN)

 

ABOUT ME
Okada Shogo
マーケター@Coincheck