Today I Learned-13
SQL - 3
- 다중행 함수
- 데이터 그룹화
- 행/열 바꾸기
오라클 내장 함수 - 6. CASE문 계속
- 대상이 ‘숫자’일 경우, CASE문 기준대상에 생략할 수도 있다.
- WHEN에다가 대상 및 조건 모두 입력 ㄱㄱ
다중행 함수, 데이터 그룹화 - 1. 다중행 함수
- 다중행 함수 : 여러 행을 바탕으로 하나의 결과 값을 도출!
그룹 함수, 복수행 함수로도 불림
함수 | 기능 |
---|---|
SUM() | : 합 |
COUNT() | : 개수 |
MAX() | : 최대값 |
MIN() | : 최소값 |
AVG() | : 평균 |
- SUM( [DISTINCT or ALL or 지정안함] [합계 구할 열 or 함수] )
- COUNT( [DISTINCT or ALL or 지정안함] [개수 구할 열 or 함수] )
참고! COUNT에서는 NULL 값 인식하지 않는다!!
- MAX/MIN ( [DISTINCT or ALL or 지정안함] [최대값/최소값 구할 열 or 함수] )
참고! 날짜/문자 데이터에도 활용 가능
- AVG( [DISTINCT or ALL or 지정안함] [평균값 구할 열 or 함수] )
다중행 함수, 데이터 그룹화 - 2. GROUP BY절
- 다중행 함수 결과값을, 특정 열 기준으로 묶어서 출력 가능!!
- 문법
SELECT [조회할 열1], [조회할 열2], … … [열N]
FROM [테이블]
WHERE [조회할 행을 선별하는 조건식]
GROUP BY [그룹화 열1], [그룹화 열2] … … [열N]
HAVING [출력그룹을 선별하는 조건식]
ORDER BY [정렬하려는 열]
- 참고! 다중행(직원이름, 사원번호 등 값의 중복이 없는)은 GROUP BY절에 넣지 않는다!!
다중행 함수, 데이터 그룹화 - 3. 그룹화 관련 함수들
- GROUP BY절 뒤에 사용할 수 있는 옵션
- ROLLUP, CUBE : 그룹화 데이터의 합계 출력 (출력 방식 약간 다름)
GROUP BY ROLLUP( [그룹화 열 지정(여러개 가능)] )
GROUP BY CUBE( [그룹화 열 지정(여러개 가능)] )
- GROUPING SETS : 같은 수준의 그룹화 열이 여러 개일 때, 각 열별 그룹화 및 출력
GROUP BY GROUPING SETS ( [그룹화 열 지정(여러개 가능] )
- GROUPING : Rollup or Cube 사용할 때, 그룹화 대상으로 지정한 열이 집계 되었는지 여부 확인
- 그룹화 되었다면 : 숫자 ‘0’ 출력
- 그룹화 안된 데이터라면 : 숫자 ‘1’ 출력
- GROUPING_ID : 위 GROUPING과 마찬가지
단, 검사할 열을 여러 개 지정 가능!!! (Grouping은 하나의 열만)
- LISTAGG : 그룹 데이터, 가로로 출력
LISTAGG( [나열할 열], [각 데이터 구분자] )
WITHIN GROUP( ORDER BY 정렬 기준 열 )
- PIVOT, UNPIVOT : 기존 테이블의 행/열 바꿔서 출력
기타(팁)
다음 강의 준비
- SQL은 다시 다음주 월, 화
- 내일부턴 자바프로그래밍!!
nice!!!!!!!