MySQLです。
グループごとにorder by、limitを掛けたレコードを取得したいのですが、いまいち方法が分かりません。
レコードの中でgroup by して、各グループごとにある値が最大値であるレコードだけを持ってきたテーブルが作成したいです。
例:商品マスタに以下のようなテーブルがあった時、 種類 番号 名前 フルーツ 1 りんご フルーツ 2 バナナ フルーツ 3 みかん お菓子 1 チョコ お菓子 2 せんべい 欲しいデータ: 種類 番号 名前 フルーツ 3 みかん お菓子 2 せんべい
ある値が最大値であるものを取得する方法として、
order by と limit 1 の合わせ技を使用することで実現可能というところまでは納得したのですが、
これとgroup by が思うように組み合わせられません。
group by はorder by よりも先に処理されるとのことだったので、
順番的にはグループ化→並び替えでできるのかなと思ったのですが…
グループごとにorder by , limitをかけるというのはで実現可能でしょうか?
さらに言うならば、上記に種類マスタのようなものがありまして、種類マスタに対してそれぞれ番号がMAXである商品マスタのレコードを結合したい、というのが最終目的なのですが、
もしよい方法ご存知でしたら教えて頂きたいです。