前提・実現したいこと
revごとのrev2の降順・rev3の降順をおこなった一番目のレコードを抽出したいです。
エクセルの関数や機能でできますでしょうか。
いろいろ触ってみましたが、結局できなかったです。
なるべくエクセルでやりたいのですがsqlでもいいのでご教示ください。
DB:oracle
バージョン:12.1.0.2.0
テストcsv
id,rev,rev2,rev3 1,100,30,10 2,100,20,20 3,100,20,15 4,200,10,10 5,200,10,20 6,300,30,30 7,300,30,20 8,400,10,10
抽出したい内容
id,rev,rev2,rev3 1,100,30,10 5,200,10,20 6,300,30,30 8,400,10,10
試したこと
select TA.id, TA.rev, TB.MAXrev2, TC.MAXrev3 from TableA as TA INNER JOIN ( select rev, MAX(rev2) AS MAXrev2 from TableA group by id, rev ) as TB ON TA.rev = TB.rev AND TA.rev2 = TB.MAXrev2 INNER JOIN ( select rev, MAX(rev3) AS MAXrev3 from TableA group by id, rev ) as TC ON TA.rev = TC.rev AND TA.rev3 = TC.MAXrev3 group by rev ``` これだとid:1.4.6.8が抽出でき4がおかしい状態です。
回答3件
あなたの回答
tips
プレビュー