在SQL中选择最大订单号

时间:2008-10-06 14:31:10

标签: sql mysql

我有一个表,用一个记录序列顺序的字段记录一系列操作:

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。

2 个答案:

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