distict 와 group by의 차이는 무엇일까?

2008. 1. 25. 15:37 개발언어/SQL
갈무리한것!

distinct는  sorting하면서  중복되는 row를 제거하는거고 group by는 조건을 기준으로 값을 합 하지요.

처리하는 방법에 약간의 차이가 있는거 같습니다.

Teradata의 경우는
group by는 4 step : 1.local aggregation 2.redistribution 3.sort 4.global aggregation 이고
distinct는 2 step : 1.redistribution 2.sort (eliminationg duplicate value) 입니다.
일반DB와 달리 병렬처리하는 과정이 있으므로 local aggregation, redistribution 이 빠진다고 해도 group by는  한 과정이 더있습니다.

그러므로 unique한 row를 구한다고 할때 distinct의 경우 aggregation 과정이 생략되고 중복되는 row만 제거하면되므로 좀더 빠르지 않을까 싶습니다. group by 보다....