SQL选择重复ID的最高值

时间:2017-06-13 13:53:08

标签: sql sql-server

我有一个包含列的SQL表:

ID,        DayNumber, Mfm, value
432080971, 1,         15,  57
432080971, 1,         15,  59
432080978, 3,         15,  54
432080978, 4,         45,  54

不幸的是,有一些重复的条目。我想要的是一个select语句,它返回没有重复ID,Daynumber和Mfm的表,如果有一个双重条目来选择具有更高值的行。

因此,作为示例,上述条目将返回为:

ID,        DayNumber, Mfm, value
432080971, 1,         15,  59
432080978, 3,         15,  54
432080978, 4,         45,  54

我正在使用sql server management studio运行sql server 2012

3 个答案:

答案 0 :(得分:3)

select top (1) 
with ties ID, DayNumber, Mfm, value
from
table
order by row_number() over (partiton by
                            ID, DayNumber, Mfm
                            order by value desc)

答案 1 :(得分:0)

select 
    ID, DayNumber, Mfm, max(value)
    from table
group by ID, DayNumber, Mfm

答案 2 :(得分:0)

您必须使用Group By子句并使用聚合函数MAX来获取组的最高值。像这样:

Select ID, DayNumber, Mfm, Max(value) From 
From your_table
Group By ID, DayNumber, Mfm