합계 출력 (SUM)
: 숫자 데이터의 합계 출력
SELECT column1, SUM(column2)
FROM tablename
GROUP BY column1;
: column1으로 묶고 column2의 합계를 출력함
SELECT column1, SUM(column2)
FROM tablename
GROUP BY column1
ORDER BY SUM(column2) DESC;
: column1 으로 묶고, SUM(column2) 기준 내림차순 정렬
SUM() 조건 오류
SELECT column1, SUM(column2)
FROM tablename
WHERE SUM(column2) >= 1000
GROUP BY column1;
: 조건(WHERE)절에는 그룹함수가 허용되지 않음.
- 그룹함수의 조건절은 HAVING절을 사용해야함
그룹함수의 조건 HAVING절
SELECT column1, SUM(column2)
FROM tablename
GROUP BY column1
HAVING SUM(column2) >= 1000;
SELECT column1, SUM(column2)
FROM tablename
WHERE column1 != 'KOREA'
GROUP BY column1
HAVING SUM(column2) >= 1000;
: 조건 WHERE절과 HAVING을 함께 사용
쿼리 실행 순서
SELECT column1, SUM(column2)
FROM tablename
WHERE column1 != 'KOREA'
GROUP BY column1
HAVING SUM(column2) >= 1000
ORDER BY SUM(column2) DESC;
: FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
SELECT column1 AS nickname, SUM(column2)
FROM tablename
WHERE column1 != 'KOREA'
GROUP BY nickname
HAVING SUM(column2) >= 1000
ORDER BY SUM(column2) DESC;
: FROM > WHERE > GROUP BY
- GROUP BY 실행 시 nickname을 찾을 수 없기 때문에 GROUP BY절에 nickname을 사용하면 실행 순서로 인해 에러가 발생함
'CS > 데이터베이스' 카테고리의 다른 글
[Oracle] 데이터 분석 - 순위 출력 (RANK) (0) | 2020.09.08 |
---|---|
[Oracle] 개수 출력 (COUNT) (0) | 2020.09.07 |
[Oracle] 평균값 출력 (AVG) (0) | 2020.09.07 |
[Oracle] 최소값 출력 (MIN) (0) | 2020.09.07 |
[Oracle] 최대값 출력 (MAX) (0) | 2020.09.07 |