【SQL】WITH句で一時テーブルを作成する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

「1クエリ内に同じようなサブクエリをいくつも書いていて長くなってしまう、、」
「長さも問題だが、見にくさもある、、」

本記事を見に来ていただいた方は、上記のような問題を感じているのではないでしょうか?
この問題を解決できるのが、WITH句になります。

本記事ではWITH句の使用方法について解説いたします!

SQLのWITH句とは

WITH句は、一時的な名前付きサブクエリを作成するための構文要素です。

WITH句を使用することで、複数のクエリで同じサブクエリを再利用したり、複雑なクエリを分割したりすることができます。これにより、クエリの可読性を向上することができます。

以降でWITH句の基本構文と使用例を解説いたします。
この機会にぜひマスターいただければと思います!

WITH句の基本構文

WITH句を使用するときは、次のような形式でサブクエリを定義します。

WITH サブクエリ名 AS (
    サブクエリの定義
)

ここで、「サブクエリ名」は一時的な名前で、その後のクエリで参照するために使用されます。
サブクエリの定義は、通常のSELECT文と同様の構文を持ちます。

WITH句の使用例

以下に、WITH句の使用例を示します。

WITH sales_total AS (
    SELECT product_id, SUM(quantity) AS total_quantity
    FROM sales
    GROUP BY product_id
)
SELECT p.product_name, s.total_quantity
FROM sales_total s
JOIN products p ON p.product_id = s.product_id
WHERE s.total_quantity > 100

この例では、まずsalesテーブルから商品ごとの売上数量を計算してsales_totalという一時的なテーブルとして定義しています。

その後、sales_totalテーブルとproductsテーブルを結合して、売上数量が100を超える商品の名前と数量を取得しています。

WITH句を使用することで、複雑なクエリをシンプルに表現できる場合や、同じサブクエリを複数の箇所で利用する場合に便利です。また、WITH句はネストすることも可能です。

上のクエリは以下のように記述することもできます。

「ロジックを分割することでの読みやすさ」「複数回同じサブクエリを書く必要がある場合の短縮化」という場合にWITH句が有効です!

SELECT p.product_name, s.total_quantity
FROM   (
    SELECT product_id, SUM(quantity) AS total_quantity
    FROM sales
    GROUP BY product_id
   ) s
JOIN products p ON p.product_id = s.product_id
WHERE s.total_quantity > 100

 

ここまで読んでいただきありがとうございます。
SQLでは、WITH句に限らず様々なケースで疑問を感じるかと思います。

このようなケースの場合はどのように記述したらよいか、、
データサイエンティストになるにはどのように効率的に学習していったらよいか?
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

SQL参考本

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメです。

SQL関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

SQLのWITH句まとめ

  • 複数回同じサブクエリを書く必要がある
  • ロジックを分割して可読性(読みやすさ)をあげたい

といった時にWITH句が有効になります。

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました