2014-11-18 2 views
1

나는 호텔 테이블 같은어느 것이 더 낫습니다, GROUP BY 또는 GROUP BY에서 다중 열을 사용하여 전체를 사용할 수 있습니까?

hotelId | hotelName | city 
============================= 
h1  | name1 | city1 
h1  | name1 | city2 
h2  | name2 | city3 
h2  | name2 | city4 
h3  | name3 | city5 
h4  | name3 | city6 

내가 hotelId and name (HotelId and HotelName will always be same) 고유 쿼리 할 경우는, 어떤 더 나은 쿼리입니다 있나요?

집계이 약

Select HotelId, Max(hotelName) from Hotel 
Group By HotelId 
+0

출력으로 원하는 항목에 따라 다릅니다. count로 표시되는 호텔 이름을 출력으로 가져 오려면 첫 번째 또는 두 번째로 이동하십시오. –

+0

두 경우 모두 HotelName이 표시됩니다 – kriznaraj

+2

왜 호텔에서 SELECT DISTINCT HotelId, HotelName을 사용하지 않습니까? – kiks73

답변

2

방법으로 그룹으로 사용

Select hotelId, hotelName from Hotel 
Group By HotelId, HotName 

하여 여러 그룹을 사용하십니까?

select distinct hotelId, hotelname from hotel 
0

나는 OP가 성능상의 관점에서 묻는 것이 OP가 아닌가? 그렇다면 다음과 같습니다 :

위의 두 쿼리 (OP)는 다른 용도로 사용되지만, 경우에 따라 MAX()와 같이 집계 함수를 사용할 수 있습니다. 목적을 달성하기 위해 실행 계획을 살펴보면 적은 비용으로 해시 집계를 볼 수 있습니다. 두 번째 쿼리가 더 좋습니다. 거대한 데이터로 성능을 볼 수 있습니다.

이제는 모든 열로 별개 또는 그룹을 선택하십시오. 성능 관점에서 볼 때 모두 동일한 계획을 생성하지만 별개의 항목으로 모든 열을 그룹화 할 수 있습니다.