2013-07-15 5 views
0

내가 최대 테이블에서 급여와 내 테이블을 찾으려면 직원 내가 최대 급여를 얻기 위해 두 가지 방법을 사용할 수 있습니다SQL 서버에서 최대 값을 찾는 데 더 좋은 방법은 무엇입니까?

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

다음과 같은 데이터를 포함,하지만 난 거기에 더 적합한 방법을 모른다 are

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

어떤 쿼리가 더 빠르고 더 좋은지 알려주세요. 왜 그런지 알려주세요.

+1

테스트하고 알아낼 수 있습니다. –

답변

6

DISTINCT없이 MAX 참조 :

DISTINCT는 ISO에서 의미가 없으며 ISO 호환성에서만 사용 가능합니다.

생각해 본다면 DISTINCT은 실제로이 상황에서 무엇을 의미 할 수 있습니까? 하나를 선택했습니다. 값 - 최대 값을보고있는 행 그룹에서 해당 값을 한 번 또는 20 번 보았는지 여부가 중요한 것은 무엇입니까?

+0

+1은 RTFM과 TFM 링크입니다. –

+0

@Damien_The_Unbeliever 두 경우 모두 SQL Optimizer가 동일한 실행 계획을 사용하지 않습니까? – Alex

+1

@voo - 나는 그렇게 기대한다. 그러나 나는 여전히 그 단어를 가지고 있지 않겠다는 옹호자이다. (SQL에 익숙하지 않다면) 원래의 저자가 왜 거기에 넣기로 결정했는지 궁금 할 때가있다. –

관련 문제