我有一个表,用一个记录序列顺序的字段记录一系列操作:
user data sequence
1 foo 0
1 bar 1
1 baz 2
2 foo 0
3 bar 0
3 foo 1
使用WHERE sequence ='0'为每个用户选择第一项很容易,但有没有办法为SQL中的每个用户选择最后一项?
我所追求的结果应如下所示:
user data sequence
1 baz 2
2 foo 0
3 foo 1
如果有任何特定于实施的骗子回答,我正在使用MySQL。
答案 0 :(得分:5)
此sql将返回每个用户具有最高序列值的记录:
select a.user, a.data, a.sequence
from table as a
inner join (
select user, max(sequence) as 'last'
from table
group by user) as b
on a.user = b.user and
a.sequence = b.last
答案 1 :(得分:0)
select top 1
user
,data
,sequence
from table
order
by sequence