从SQL存储过程中的唯一值中查找最大数字

时间:2014-07-14 12:21:48

标签: mysql sql stored-procedures max distinct

您好我正在尝试根据最新(最大)版本号

获取唯一的ID值列表

我的表格如下:

id  Version    Cost      Name     Status
---|-----|------------|--------|---------
35 | 1.0 | 200000     | john   | Open
36 | 1.0 | 400000     | juliet | Open
35 | 2.0 | 350000     | borat  | Closed
36 | 1.5 | 30000      | john   | Waiting Update

我希望它能够返回

id  Version    Cost      Name     Status
---|-----|------------|--------|---------
35 | 2.0 | 350000     | borat  | Closed
36 | 1.5 | 30000      | john   | Waiting Update

我已经尝试过使用它,但无法让它工作,我不知道我哪里出错了

select FB.* from CSLL.Feedback FB

inner join (
    select ID
    ,max(Version)
    ,Status as MaxID
    from CSLL.Feedback
    group by ID
) groupedID

ON FB.ID = groupedID.ID
AND FB.Version = groupedID.MaxID
and FB.Status = groupedID.Status

这是基于对此处发现的另一个问题的回复

LINKY

任何人都可以提供帮助吗?

非常感谢提前

汤姆

1 个答案:

答案 0 :(得分:0)

试试这个。

select fb1.* from Feedback fb1 
LEFT JOIN Feedback fb2 on fb2.id=fb1.id and fb2.version>fb1.version
where fb2.id IS NULL;