めずらしいSQLを見たのでメモ
1対多のテーブルとjoinして、Many側の最大、または最小のレコードのみjoin対象とする時、
SELECT * FROM master m JOIN rows r on m.id = r.master_id AND not exists (select 1 from rows r2 where r2.id > r.id and r2.master_id = r.master_id)
where r2.id > r.id and r2.master_id = r.master_id
この条件で、r1より大きい同一のmaster_idがあれば行を返す
not exists で 行があれば結合しない
となり、Many側のmaster_id内の最大idレコードのみ結合レコード対象となる。
existsサブクエリを駆動表分投げるから重いんじゃないのかなあ。と思いつつ、自分の環境ではgroup byサブクエリより早かったりした。(駆動表、内部表ともに100万レコードないくらい)
こういう発想なかったのでメモしておきます。