updated_at が最新順にデータを取得したいです。 sub_id が重複している場合は、 updated_at が最も最新の方を出したいです。
distinctを使用して、 sub_id を重複しないようにしようと思ったのですが、やはり他カラムがかかわってしまいうまく行きませんでした。
SQL
1select distinct sub_id, id, updated_at from 対象テーブル order by updated_at;
対象テーブル
id | sub_id | updated_at |
---|---|---|
1 | 1 | 2022/01/10 |
2 | 1 | 2022/01/11 |
3 | 2 | 2022/01/12 |
4 | 2 | 2022/01/13 |
5 | 3 | 2022/01/14 |
6 | 4 | 2022/01/15 |
7 | 5 | 2022/01/16 |
出したい結果 (id=1はid=2と、id=3はid=4と、sub_idが重複しており、updated_atが古いため除外される)
id | sub_id | updated_at |
---|---|---|
7 | 5 | 2022/01/16 |
6 | 4 | 2022/01/15 |
5 | 3 | 2022/01/14 |
4 | 2 | 2022/01/13 |
2 | 1 | 2022/01/11 |
よろしくお願いいたします。
sub_idとupdated_atの組み合わせがユニークという条件でよろしいですか?
