プロが教えるわが家の防犯対策術!

SQLだけで1500から2000ステップというすごく難解な機能があるのですが
※PL/SQLではなくSQL単独です。
JOIN系が沢山使われていたり
サブクエリが次から次へと展開されたり
Group byとかもサブクエリに使われていたり
とすごく難解なのですが

こういったSQLを作れるような中上級者へのレベルアップ方法を教えてください。

A 回答 (2件)

そんな巨大なSQLを書かなくてすむように設計を工夫したりビューや関数、プロシージャを活用するのが上級者だと思います。




基本、
SELECTは新しいテーブル(のようなもの)を作る作業です。
JOINはテーブル(のようなもの)とテーブル(のようなもの)を組合せて新しいテーブル(のようなもの)を作る作業です
サブクエリはSELECTで作ったテーブル(のようなもの)をJOIN等で使うための手段です。(EXISTS等の他の用途もありますが)

複雑に見えても、分割して考えれば、それぞれは「元のテーブルからSELECTしているだけ」です


例えば。

LEFT JOIN (SELECT 担当者,SUM(売上額) AS 合計売上額 FROM 売上テーブル GROUP BY 担当者) AS 担当者別売上

とあったら

・SELECT 担当者,SUM(売上額) AS 合計売上額 FROM 売上テーブル GROUP BY 担当者 で作られる「担当者別売上」というテーブル(のようなもの)がある。
・それとLEFT JOINする。

ということです。
ビューた共通テーブル式や一次テーブル等を活用すれば

LEFT JOIN 担当者別売上

と見た目ではサブクエリを使わずに、普通にテーブルをJOINしているかのように書くこともできます。
    • good
    • 1

そういう長大なSQLを仕事で読む必要があったけど、とても大変でした・・。



やっぱり、自分で少しずつ長いSQLを作りながら、慣れていくしかないのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A