サブクエリとAS文で思い思いのデータを抜き出してみよう
前回のNoteにて、SQLで書かれた一文一文の命令を
「クエリ文」
と呼びました。
実は、
クエリ文のなかにクエリ文を入れること
ができます。
クエリ文の中に入れられたクエリ文のことを
「サブクエリ」
と呼びます。
また、長くなったフィールド名をわかりやすくしたいときには
「AS文」
を使います。
それでは説明していきましょう。
サブクエリとは?
「サブクエリ」はプログラミング言語でいう
「戻り値」の役割
を果たしています。
たとえば、サブクエリの出力結果を
✅ 数値
✅ 文字列
✅ テーブル
︙
のように置きかえて使うことができます。
サブクエリ文は
「一番最初に実行」
され、結果を出してから、
クエリ文を読み込んでいきます。
使い方を見ていきましょう。
select A from...
のようなクエリ文のなかに()をつけて、
select A from (select A...)
というふうに書いていきます。
なお、この場合(select A...)の値は
テーブル
となります。
このように、
どういう値が返ってくるのか?
を想像しながらサブクエリを書いていきましょう。
要するにサブクエリ文とクエリ文を
()内で加工したテーブルをさらに加工していく
という感じでとらえてもらえればわかりやすいのかなと思います。
※なお、
()内にセミコロン(;)を含めるとエラーが出る
ので、注意しましょう。
AS文でフィールドの名前をわかりやすい名前に変えられる。
また、
クエリ文にクエリ文を重ねていくとフィールド名が長くなる
こともあります。
なので、
サブクエリ文とクエリ文を同時に使うとどうしても長くなりがち
です。
そんな長くなったフィールドに別名をつけること
ができます。
書き方は
[フィールド名] AS [フィールドの新たなタイトル名]
と書くことによって、
フィールドの名前をわかりやすい名前に変える
ことができます。
ですので、
Select [カラム] AS [カラムのタイトル名]
と書くことによって、
画面にも
AS文でつけたタイトルが表示
されます。それでは、自作のデータベースをもとに例をあげてみましょう。
以下の文でSQLを実行します。(データベースソフトはpostgresqlです。)
select
twitter_date as 日付,
twitter_user_id as ツイートID,
twitter_replies as ツイートのリプ数
from
activeusers--自作のテーブル名。どれだけリプしているのかを日別で見れます。
order by
twitter_date asc;
↑AS文をつけて出力した例
上のデータベースのフィールドを見ると、ちゃんと書かれていることがわかります。
・サブクエリ
・AS文
を使うことで、
思い思いの表に加工することで、
思い思いのまま「データ分析」する
ことができます。
まとめ
いかがでしたでしょうか?クエリの中にサブクエリを入れることで
より高度な分析ができます。
サブクエリ文を使うと、長くなりがちなフィールド名は
AS文で自分でわかりやすい名前に置きかえる
ことができます。
サブクエリ文で長くなるからこそ、AS文で適度にフィールド(列)を整理していきましょう。
この記事が気に入ったらサポートをしてみませんか?