1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

複雑な内容をSQLで書く時のコツ!

Last updated at Posted at 2021-11-06

###概要
データエンジニアとしてはPythonコードよりも必須のSQLについて、現場ではより複雑なコードの記載が求められますが長く複雑化したコードも本記法によりシンプルに整理されたクエリが実現可能です。

###工程を最初に記載する
まず最初に「最終的に何を求められているのか」という要件を記載すると良いでしょう。
逆算して「その為には何が必要で、何をどうすればいいのか」という内容を頭につければ
工程が明確化がするだけでなくレビュアーも読みやすいです。

sql
--④最終目標
--③その為に必要なjoin処理クエリ
--②その為に必要な処理クエリ
--①取得テーブルから最初に処理するクエリ

###FROM句よりもWITHを多用する事
FROMを使用すると読みづらいです。
WITH句を使用すると読みやすく処理も明確化して繋げる事が可能です。
WITH句を繋げる事かつ上記①〜④がを順々に記載する事で 複雑化したSQLが綺麗になりシンプルに理解する事が可能です。

sql
-------------------------------------
--④最終目標
--③その為に必要なjoin処理クエリ
--②その為に必要な処理クエリ
--①取得テーブルから最初に処理するクエリ
-------------------------------------
--①取得テーブルから最初に処理するクエリ
-------------------------------------
WITH A AS(
SELECT ~
FROM ~
),
-------------------------------------
--②その為に必要な処理クエリ
-------------------------------------
 B AS(
SELECT ~
FROM A
),
-------------------------------------
--③その為に必要なjoin処理クエリ
-------------------------------------
 C AS(
SELECT ~
FROM B
LEFT JOIN ~
ON ~
),
-------------------------------------
--④最終目標
-------------------------------------
 D AS(
SELECT ~
FROM C
)
SELECT *
FROM D

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?