2013-07-15 80 views
0

我想找到從表中的最高工資和我的表員工包含以下數據哪種方法更適合在sql server中查找最大值?

Id Salary 
1 5000 
2 4000 
3 1000 
4 5000 
5 2000 
6 5000 
7 5000 

在這裏,我可以使用兩種方法來獲得最大的工資,但我不知道哪種方法比較好,有是

select max(Salary) from Employee 
or 
select max(distinct Salary) from Employee 

請讓我知道哪個查詢更快,更好,爲什麼?

+1

您可以測試並找出答案。 –

回答

6

沒有DISTINCT。請參閱MAX

DISTINCT對MAX無意義,僅適用於ISO兼容性。

如果你仔細想想,DISTINCT在這種情況下究竟意味着什麼?您正在選擇一個值值 - 您要查看最大值的那組行中是否看過該值一次或20次,這有什麼關係?

+0

對於RTFM +1和鏈接到TFM。 –

+0

@Damien_The_Unbeliever在兩種情況下,sql optimaizer都不會使用相同的執行計劃嗎? – Alex

+1

@voo - 我希望如此,是的。但是我仍然主張不要在那裏寫這個詞 - 它所做的一切(如果你不熟悉SQL)會讓你花時間想知道爲什麼原作者決定將它放在那裏。 –

相關問題