반응형
1.PARTION 이란?
쿼리 결과 집합을 파티션으로 분할해준다.
2.PARTION 사용법
SELECT 순위함수() OVER(PARTITION BY 컬럼명 ORDER BY 컬럼명)
FROM 테이블명
*순위함수 : ROW_NUMBER, RANK, DENSE_RANK
*집계함수: SUM, AVG, MAX, MIN, COUNT
3. PARTION BY과 GROUP BY 차이점
- GROUP BY : 특정 원하는 컬럼에 대해 추출하여 결과값을 출력, 반환되는 행의 수 감소 , 중복제거
- PARTION BY: 전체데이터에서 원하는 결과값 보여줌
GROUP BY 예문
SELECT DEPT_CD, COUNT(DEPT_CD)AS COUNT
FROM CONTRACT_LIST
GROUP BY DEPT_CD
SELECT한 컬럼 중 집계함수와 반환하는 행의 수가 맞지 않을 경우 오류 발생
SELECT CONTRACT_NAME,DEPT_CD,COUNT(DEPT_CD)AS COUNT -- 반환하는 행의 수 10<>3=3
FROM CONTRACT_LIST
GROUP BY DEPT_CD
참고: https://ggmouse.tistory.com/119 [초보개발자꽁쥐:티스토리]
4. PARTION BY 사용예제
PARTITION 사용예제1 날짜별 계약서 조회
SELECT *,ROW_NUMBER()OVER(PARTITION BY WRITE_DATE ORDER BY WRITE_DATE ASC) AS ROWNUM
FROM CONTRACT_LIST
ORDER BY WRITE_DATE ASC
PARTITION 사용예제2 부서별 계약서
SELECT *,ROW_NUMBER()OVER(PARTITION BY DEPT_CD ORDER BY DEPT_CD ASC) AS ROWNUM,
COUNT(*) OVER (PARTITION BY DEPT_CD)AS TOTAL
FROM CONTRACT_LIST
PARTITION 사용예제 3 메일 수신 여부 별 만기일 빠른 순으로 조회
SELECT *, ROW_NUMBER()OVER(PARTITION BY SEND_MAIL_YN ORDER BY EXPIRE_DATE ASC)AS ROWNUM, COUNT(*) OVER(PARTITION BY SEND_MAIL_YN) AS TOTAL
FROM CONTRACT_LIST
볼 품 없지만 예제에 사용한 테이블
반응형
'MS SQL' 카테고리의 다른 글
MS SQL_CASE WHEN THEN 조건식사용법 (0) | 2022.08.16 |
---|---|
MS SQL_PIVOT 사용법 (0) | 2022.08.03 |
MS SQL_사용자 정의 함수 사용법 (0) | 2022.08.02 |
MS SQL_프로시저 사용법 (0) | 2022.08.01 |
MS SQL_페이징처리3/TOP()사용법 (0) | 2022.07.31 |