Every Qiita #26
のんびり独学初学者投稿 26日目
今回は・・・
sqlの基本を復習した時の備忘録です。
指定カラムの平均値よりも高いレコードを選択したい
ポートフォリオ作成の中で上記のようなデータのみを取得したい時に少しはまったのでメモ程度に残しておきます。
データはサンプルとして下記のような状態とします。
stationeryテーブル
name | price |
---|---|
鉛筆 | 100 |
ハサミ | 200 |
ホッチキス | 250 |
クレヨン | 400 |
消しゴム | 180 |
のり | 170 |
ノート | 300 |
この中から平均金額より高い文房具のみを取得します。
「平均値を出してwhereで絞り込めばいいんだね。了解。」
SELECT name, price FROM stationery WHERE price > AVG(price);
・・・エラーなんだが。なんで?
->あ、WHEREに集合関数は使えないです・・・
そんなときにサブクエリを使ってみましょう!
SELECT name, price FROM stationery WHERE price > (SELECT AVG(price) FROM stationery);
name | price |
---|---|
ホッチキス | 250 |
クレヨン | 400 |
ノート | 300 |
単一の値を取得する(今回は平均金額)場合のサブクエリをスカラ・サブクエリというみたいです。
SQLの理解浅すぎますね・・・頑張ります!