B3S
menu close

MySQL

[SQL]特定グループの各最大レコードを取得したい


ヤス

更新日:2021/08/12


どうも、ヤスです。

今回のやりたいことはこんな感じです。

↓↓↓↓↓こんなデータがあったとき↓↓↓↓↓

ID(主キー) NO(主キー) date
1 1 2015-12-10
1 2 2016-08-09
1 3 2016-09-05
2 1 2012-04-30
2 2 2013-10-10
3 1 2012-01-02

↓↓↓↓↓こんな感じでデータを取りたい↓↓↓↓↓

ID(主キー) NO(主キー) date
1 3 2016-09-05
2 2 2013-10-10
3 1 2012-01-02

要するにIDをグループとして、Noの最大値をとりつつ、IDとNoに紐付いたDATEも取得したい。

これでどうでしょう。。


んー、これでは、dateカラムが正しく取得できないし、SQLが不正。

こんなんええやん

「最大」を「他に当該値以下の値がない」と読むの術!

複合キーに限らず、同一グループ内で最大レコードを取りたい需要はあるのでは?