파게로그
[SQL] 집계함수(aggregate functions) 본문
집계함수(aggregate function)는 단일한 행이 아니라 여러 행에 기반하여 함수가 적용된 결과를 반환한다. 주로 GROUP BY와 함께 쓰이며, 이는 질의의 대상인 테이블의 행을 분할하거나, 뷰를 여러 그룹으로 나누는 키워드이다. 이러한 각각의 그룹에 대해서 하나씩의 결과 행을 반환한다.
MAX
SELECT MIN(sal)
FROM emp
WHERE title = 'COOPERATOR';
MIN
SELECT title, MIN(sal) 최솟값
FROM emp
GROUP BY title
ORDER BY 최솟값 DESC;
SELECT MIN(sal)
FROM emp
WHERE 1 = 2;
그룹 함수는 WHERE절의 조건이 거짓이어도, 즉 이를 만족하는 row가 하나도 없더라도, NULL 결과를 출력한다,
SELECT MAX(sal), AVG(comm), AVG(NVL(comm, 0))
FROM emp;
그룹 함수는 null값을 무시한다. 따라서 AVG(comm)과 AVG(NVL(comm, 0))의 결과는 다르다.
SELECT title, SUM(sal) 합계
FROM emp
GROUP BY title
HAVING SUM(sal) >= 8000;
그룹 함수로 조건을 줄 때에는 WHERE절 대신 HAVING절을 사용해야 한다. HAVING을 사용함으로써, 질의의 대상인 테이블이나 뷰의 개별적인 행의 값이 아닌, 집계함수가 적용된 결과를 기반으로 특정 그룹을 필터링할 수 있는 것이다.
SELECT COUNT(comm)
FROM emp;
null인 row를 제외하고 센다.
'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글
[SQL] PIVOT, UNPIVOT (0) | 2021.04.02 |
---|---|
[SQL] 데이터 분석 함수 (0) | 2021.04.01 |
[SQL] SQL로 IF문 구현 (0) | 2021.03.31 |
[SQL] 암시적 형 변환 (0) | 2021.03.31 |
[SQL] 산술 연산자, 비교 연산자, 논리 연산자 (0) | 2021.03.31 |
Comments