LoginSignup
1
1

More than 3 years have passed since last update.

【Oracle DB】最大値をもつレコードの値以外の列だけ取得したい

Posted at

テーマ:最大値をもつレコードの値以外の列だけ取得したい

おこづかいを一番たくさん貰っている人の名前だけを抽出したい。
クエリ寄りの言い方をすると、テーブル[おこづかい]から列[きんがく]の最大値をもつレコードについて、列[なまえ]の値だけ取得したい。

▼テーブル[おこづかい]

なまえ きんがく
さとう 1000
たなか 2500
やまだ 5000
びるげいつ 1000000
SQL
SELECT なまえ
FROM おこづかい
WHERE おこづかい = (
       SELECT MAX(きんがく)
       FROM おこづかい
      )
結果

| おこづかい   |
----------——-
| びるげいつ   |

びるげいつ君が一番おこづかいをもらっていることがわかったよ!
やったね!

おまけ

最大値をもつレコードの名称だけ取得したいのに、
MAX(きんがく)はSELECT句でしか使えないので、どうやって抽出条件に加えようか迷っていた。
実際のPJで使ったクエリはWHERE句にキー値を指定したり、もう少し煩雑。
副問い合わせを使って最大値をWHERE句の条件に指定する、という備忘のため投稿。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1