サブクエリと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;

画像1

↑AS文をつけて出力した例

上のデータベースのフィールドを見ると、ちゃんと書かれていることがわかります。

・サブクエリ
・AS文

を使うことで、

思い思いの表に加工することで、

思い思いのまま「データ分析」する

ことができます。

まとめ

いかがでしたでしょうか?クエリの中にサブクエリを入れることで

より高度な分析ができます。

サブクエリ文を使うと、長くなりがちなフィールド名は

AS文で自分でわかりやすい名前に置きかえる

ことができます。

サブクエリ文で長くなるからこそ、AS文で適度にフィールド(列)を整理していきましょう。

この記事が気に入ったらサポートをしてみませんか?