前提
現在 Oracle DB、SQLを用いて問題演習を行っています。
下記の問題演習が上手くできず困っているので教えていただきたいです。
各ポジションごと(GK、FWなど)に最も身長と、その選手名を表示してください。ただし、SELECT句に副問合せを使用してください。
問題の環境としてはMariaDBでできているで載っている回答は下記になります。
SQL
1SELECT p1.position, MAX(p1.height) AS 最大身長, 2 ( 3 SELECT p2.name 4 FROM players p2 5 WHERE MAX(p1.height) = p2.height AND p1.position = p2.position 6 ) AS 名前 7FROM players p1 8GROUP BY p1.position
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- OracleDBで実行できるようにしたい。
発生している問題・エラーメッセージ
エラーメッセージ ここではグループ関数は使用できません。
該当のソースコード
SQL
1select 2 p1.position, 3 max(p1.height) as 最大身長, 4 ( 5 select p2.name 6 from players p2 7 where p1.position = p2.position 8 and max(p1.height) = p2.height 9 ) as 名前 10from players p1 11group by position;
試したこと
副問い合わせで最大身長を表示するようにするなど方法は試したのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
SI Object Browser for Oracle 19
Oracle cliant 12.1.0
回答1件
あなたの回答
tips
プレビュー