• 締切済み

SQLで最大値を検索条件にする場合の方法

下記のような<検索対象データ>から、<取得したいデータ>を取得するSQLがわからず困っています。 ご教授下さい。 【条件】 同一[ID]で[NO]が最大のレコードのみを取得する。 <検索対象データ> ID NO DATA ---------------- AA 1 あいうえ AA 2 あいう AA 3 あい BB 1 かきく BB 2 かき CC 1 さしす CC 2 さし <取得したいデータ> ID NO DATA ---------------- AA 3 あい BB 2 かき CC 1 さし よろしくお願いします。

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.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のほうがいいと思いますが、 古いバージョンはこちらしかだめだったかと。 さらに古いバージョンはこちらもだめだったりしますが。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

><取得したいデータ> ・・・ >CC1さし 「CC2さし」じゃないと命題が成り立ちませんが・・ 何をもって「最大のレコード」と定義しているのでしょうか?

すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

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

すると、全ての回答が全文表示されます。

関連するQ&A