그룹함수
: 테이블의 전체 데이터에서 통계적인 결과를 구하기 위해서 행 집합에 적용하여 하나의 결과를 생산
사원들의 급여 총액, 평균액, 최고액, 최소액 출력하기
SELECT SUM(SALARY) AS "급여총액",
ROUND(AVG(SALARY)) AS "급여평균",
MAX(SALARY) AS "최대급여",
MIN(SALARY) AS "최소급여"
FROM EMPLOYEE;
최근에 입사한 사원과 가장 오래전에 입사한 사원의 입사일 출력하기
SELECT MAX(HIREDATE),
MIN(HIREDATE)
FROM EMPLOYEE;
1. 그룹함수와 NULL값
그룹함수는 다른 연산자와는 달리 해당 칼럼 값이 NULL인 것을 제외하고 계산
사원들의 커미션 총액 출력하기
SELECT SUM(COMMISSION) AS "커미션 총액"
FROM EMPLOYEE;
2. 로우 개수를 구하는 COUNT 함수
: 테이블의 행 개수를 반환
- COUNT(*) : NULL을 포함한 모든 행의 개수를 구함
- COUNT(expr) : expr열에서 NULL이 아닌 행의 개수를 구함
- DISTINCT : 중복되는 값을 한 개로 하여 행의 개수를 구함
- ALL : 중복되는 값을 포함한 행의 개수를 구함 (Default)
전체 사원의 수 구하기
SELECT COUNT(*) AS "사원의 수"
FROM EMPLOYEE;
커미션을 받는 사원의 수 구하기
SELECT COUNT(COMMISSION) AS "커미션 받는 사원 수"
FROM EMPLOYEE;
직업 종류의 개수 출력하기
SELECT COUNT(DISTINCT JOB) AS "직업 종류의 개수"
FROM EMPLOYEE;
3. 그룹함수와 단순 칼럼
그룹함수를 사용하는 경우 SELECT 절의 열 또는 표현식에 그룹함수가 아닌 것을 포함시키면 에러 발생
그룹함수를 사용하는 경우 SELECT 절에 그룹함수가 아닌 것을 포함시킨 잘못된 예
SELECT ENAME, MAX(SALARY)
FROM EMPLOYEE;
'SQL - Oracle > 5. 그룹함수 사용하기 (GROUP BY)' 카테고리의 다른 글
Day 37 : 연습 문제 - GROUP BY (0) | 2021.12.08 |
---|---|
Day 32 : Exercise - 그룹함수 사용하기 (0) | 2021.12.01 |
Day 32 : 그룹 결과 제한 - HAVING 절 (0) | 2021.12.01 |
Day 32 : 데이터 그룹 - GROUP BY (0) | 2021.12.01 |