はじめに
今回はサブクエリとASを紹介したいと思います。
サブクエリとは
サブクエリとは、SQLではクエリの中に他のクエリを書くことができ、この他のクエリのことを元のクエリに対してサブクエリと言います。
例えば、ある人の今月に使った支出の合計を基準にその人よりも支出の多い人を同じテーブルから見つけたいと言うときに、サブクエリを使わないとまずは基準になる人の支出合計を求めるクエリを書き、その結果をもとにテーブルからその支出金額より多い人を見つけるクエリを書く必要があるので、クエリを別々に二つ書かないといけません。しかし、サブクエリを使うと一つのクエリでこれらを求めることができます。
サブクエリを使ってみる
以下のsampleテーブルからpriceの合計を求め、その合計よりもpriceが多い人のnameを一覧表示するクエリを考えてみます。
とりあえず、サブクエリを用いないバージョンで書いてみましょう。
<平均priceを求めるクエリ>
SELECT AVG(price)
FROM sample;
-----------------
SELECT name
FROM sample
WHERE price > 上のクエリで求めた平均price;
このように、クエリを二つに分けて書く必要がありますよね。
しかし、以下のようにサブクエリを使うと一つのクエリにまとめることができます。
SELECT name
FROM sample
WHERE price > (
SELECT AVG(price)
FROM sample
);
()
で囲まれたクエリをサブクエリと言います。ちなみに、サブクエリの中に;
は必要ありません。
AS
ASを使うことで、カラムの名前を好きな文字列に変更できます。
SELECT SUM(price) AS "金額の合計"
FROM sample;
おわりに
今回はサブクエリを使って二つのクエリをまとめる方法と、ASを使ってカラム名を任意のものに変更する方法法を紹介しました。