プロが教える店舗&オフィスのセキュリティ対策術

下記のような<検索対象データ>から、<取得したいデータ>を取得するSQLがわからず困っています。
ご教授下さい。


【条件】
同一[ID]で[NO]が最大のレコードのみを取得する。


<検索対象データ>
IDNODATA
----------------
AA1あいうえ
AA2あいう
AA3あい
BB1かきく
BB2かき
CC1さしす
CC2さし


<取得したいデータ>
IDNODATA
----------------
AA3あい
BB2かき
CC1さし


よろしくお願いします。

A 回答 (3件)

select * from tbl t1


where t1.no = (select max(t2.no) from tbl t2 where t1.id = t2.id)

MySQLもバージョンによって使えるsqlが異なりますのでバージョンは明記しましょう。
where (id,no) in・・・が使えるならANo.1の方のsqlのほうがいいと思いますが、
古いバージョンはこちらしかだめだったかと。
さらに古いバージョンはこちらもだめだったりしますが。
    • good
    • 0

><取得したいデータ>


・・・
>CC1さし

「CC2さし」じゃないと命題が成り立ちませんが・・
何をもって「最大のレコード」と定義しているのでしょうか?
    • good
    • 0

select * from hoge where (id,no) in (select id,max(no) from hoge

group by id)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!