SQLの副問合わせ
今回私はPostgreSQLについて学習していて、
そこで副問合わせWHERE句に位置するサブクエリについて学習したので記事にしました。
副問合せとは
副問合せとは、別名サブクエリとも呼ばれます。
クエリ(query)とは、お問い合わせという意味
副問合せはあるSELECT文の結果を別のSQL文で利用することです。
※副問合せは、INSERT, UPDATE, DELETEでも使用可能
WEHRE句に存在する副問合せ
以下のテーブルを使用して説明していきます。
<テストテーブル>
company_name | start_company | money |
---|---|---|
森永製菓 | 1982-03-06 | 4000 |
三菱電機 | 1890-07-28 | 5000 |
パルシステム | 2017-12-10 | 8500 |
WHERE句に副問合せがあるとするサンプルコードです。
SELECT *
FROM campanies
WHERE money > (select AVG(money) FROM campanies);
上記SQL文を言語化してみます。
すべてのカラムデータを
テーブル<companies>から抽出する。
条件として、<money>カラムの平均値より大きいデータをテーブル<companies>から抽出する。
三行目のWHERE句にSELECT文が追加され、これがWHERE句に存在する副問合せです。
AVGは関数で平均を求めるものに使用します。
moneyの平均値は5833.333になりますのでパルシステムのみが抽出されます。
結果は以下の通りです。
company_name | start_company | money |
---|---|---|
パルシステム | 2017-12-10 | 8500 |
以上です。
私もまだまだ勉強中です。頑張りましょう!