###概要
データエンジニアとしては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