2017-06-13 21 views
-3

我有一個SQL表中的列SQL選擇最高值:其中重複的ID

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

+1

使用'group by'。 –

+0

'從表組中選擇id,max(value)by id'就像這樣 –

+3

問及答案數百次。 –

回答

0
select 
    ID, DayNumber, Mfm, max(value) 
    from table 
group by ID, DayNumber, Mfm 
1
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) 
+3

一個相當不知道的人肯定已經低估了這個答案。對於這種情況,我認爲「GROUP BY」是最好的,但是這絕對是合理的(特別是如果用戶想要「Mfm」與最大值關聯)。 –

0

你必須使用Group By子句並使用聚合函數MAX獲取組的最高值。類似這樣的:

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