テーマ:最大値をもつレコードの値以外の列だけ取得したい
おこづかいを一番たくさん貰っている人の名前だけを抽出したい。
クエリ寄りの言い方をすると、テーブル[おこづかい]から列[きんがく]の最大値をもつレコードについて、列[なまえ]の値だけ取得したい。
▼テーブル[おこづかい]
なまえ | きんがく |
---|---|
さとう | 1000 |
たなか | 2500 |
やまだ | 5000 |
びるげいつ | 1000000 |
SQL
SELECT なまえ
FROM おこづかい
WHERE おこづかい = (
SELECT MAX(きんがく)
FROM おこづかい
)
結果
| おこづかい |
—----------——-
| びるげいつ |
びるげいつ君が一番おこづかいをもらっていることがわかったよ!
やったね!
おまけ
最大値をもつレコードの名称だけ取得したいのに、
MAX(きんがく)はSELECT句でしか使えないので、どうやって抽出条件に加えようか迷っていた。
実際のPJで使ったクエリはWHERE句にキー値を指定したり、もう少し煩雑。
副問い合わせを使って最大値をWHERE句の条件に指定する、という備忘のため投稿。