Oracle SQL についてですテーブル1列1 列21 AAA2 BBB

Writer: admin Type: regalmach Date: 2019-01-05 00:00
Oracle SQL についてですテーブル1列1 列21 AAA2 BBB3 CCCテーブル2列1 列2 列3AAA 10 あああAAA 20 いいいBBB 10うううBBB 20 えええBBB 30 おおおCCC 40 かかかこの時、テーブル1.列2にテーブル2.列2の最大値を持つテーブル2.列1を結合するにはどうしたら良いでしょうか?1 いいい2 おおお3 かかかと表示させたいです。分かりづらくて申し訳ありません。共感した0###推測ですがテーブル2の列1ごとの列2が最大値のものと結合したいということでしょうか。最大値の行が1行しかないという保証があるかにもよります。あるなら共通表式でwith q as( select * from テーブル2where ( 列1, 列2 ) in( select 列1, max( 列2 ) from テーブル2group by 列1 ))としてテーブル1と結合したらどうですか。同一の最大値が存在しうるならそれを加味してrow_number関数で列1ごとに1行抽出が必要です。ナイス0
###抽出としてはそれでいけそうです!最大値が一つの保証がないときはrow_number関数で1つに絞ればいいんですねありがとうございます。初歩的な質問で申し訳ありませんがwith句でまとめたselect文はjoin句に使えるんでしょうか? select テーブル1left outer join q on テーブル1.列2=…のようにその方法で試してみてはいるんですがエラーが出てしまってます。qが無効な演算子ですみたいな?
###教えてもらった通りにしたら実行できました!ありがとうございます!

 

TAG