我有一张桌子:
id | id2 | last_attempt
1 | 100 | 201
2 | 100 | 202
3 | 101 | 203
4 | 102 | 204
5 | 100 | 205
6 | 102 | 206
7 | 101 | 207
我想最终只有一个" id2"它必须是具有最高" id":
的那个id | id2 | last_attempt
5 | 100 | 205
6 | 102 | 206
7 | 101 | 207
所以我假设我需要按id2进行分组并执行某种子查询以仅包含最新项目。
知道如何快速完成这项工作吗?
答案 0 :(得分:0)
使用MAX
获取最新值
SELECT id,id2,MAX(last_attempt) FROM table GROUP BY id2;
答案 1 :(得分:0)
您可以使用自联接来实现此目的:
select a.*
from your_table a
left join your_table b on a.id2 = b.id2
and a.id < b.id
where b.id2 is null;
另一种方法是通过聚合:
select a.*
from t a join (
select id2, max(id) id
from t
group by id2
) b on a.id2 = b.id2 and a.id = b.id
答案 2 :(得分:0)
select id, id2, max(last_attempt)
from table_name
group by id2