흠... 예를 들어서 회원의 거주 지역 테이블이 있다고 가정해보면 다음과 같은 테이블이
존재 할 수 있다.
거주지
-----
서울
경기
경기
서울
경남
전남
경기
7개의 행이라면 지역을 파악하는데 어려움이 없지만, 기본적으로 DB에 저장되는 회원의
수는 수 만이 넘어갈 것이기에 이 경우는 Order by 절을 사용한다고 해도 답이 안나온다.
이 경우
SELECT DISTINCT 거주지 FROM 테이블;
과 같이 하면, 다음과 같은 결과를 얻을 수 있다.
거주지
------
서울
경기
경남
전남
이와 같은 효과로 GROUP BY로 낼 수 있다.
SELECT 거주지 FROM 테이블 GROUP BY 거주지;
와 같이 한다면 말이다. 이 차이점은... 흠 좀 더 알아봐야 겠다.
PARTITION BY는 DISTINCT를 무시한다.
해서, 테이블에 DISTINCT가 걸려 있어도 이를 무시하고 원본을 대상으로 작업을 수행한다.
ID | 점수 | 그룹 |
1 | 10 | A |
2 | 20 | B |
3 | 15 | A |
예로 위와 같은 테이블이 있다손 한다면,
SELECT SUM(점수) OVER (PARTITION BY 그룹) AS "그룹합계" FROM 테이블
이면 그룹 A에 대해서 묶지 않고 개개의 데이터로 처리된다고 할 수 있다.
'DataBase > SQL' 카테고리의 다른 글
[SQL] SET XACT_ABORT ON의 의미 (0) | 2013.02.13 |
---|---|
[SQL] ISNULL()함수 사용법 (0) | 2013.02.13 |
[SQL] between구문 사용법 (0) | 2013.02.13 |
[SQL] Group by 컬럼 사용 팁 (0) | 2013.02.13 |
[SQL] 테이블 삭제시 제약 조건제거 (0) | 2013.02.13 |