SQL - 如何使用公共字段获取最新条目?

时间:2017-02-16 11:15:56

标签: mysql

我有一张桌子:

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进行分组并执行某种子查询以仅包含最新项目。

知道如何快速完成这项工作吗?

3 个答案:

答案 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;

Demo

另一种方法是通过聚合:

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

Demo 2

答案 2 :(得分:0)

select id, id2, max(last_attempt)
from table_name
group by id2