21장 COUNT 이외의 집계함수
SUM(합계 구하기)
- SUM 집계함수는
수치형
만 가능
- NULL 값 무시
- 문법
AVG(평균)
- AVG 집계함수는
수치형
만 가능
- NULL 값 무시
- 문법
MIN, MAX 최솟값, 최댓값 구하기
- MIN, MAX 집계는
수치형, 문자열, 날짜시간형
도 사용 가능
- NULL 값 무시
- 인수가 문자열이면, ASCII 코드를 이용해서 정렬된다.
- MIN : 숫자 -> 특수문자 -> 영어대문자 -> 특수문자 -> 영어소문자 -> 특수문자 -> 한글 순
MAX : 한글 -> 특수문자 -> 영어소문자 -> 특수문자 -> 영어대문자 -> 특수문자 -> 숫자 순
22장 그룹화 - GROUP BY
- 지정된 열의 값이 같은 행이 하나의 그룹으로 묶임
- 만약 GROUP BY 구만 사용 시, DISTINCT와 같은 결과가 나온다.
- 그래서 집계함수와 쓰지 않으면 별 의미가 없다.
- 사용 예시
해당 테이블 내에서, 점포별 팔았던 상품 수량
SELECT 점포, SUM(팔았던 상품 수량) FROM 테이블 GROUP BY 점포;
HAVING 구로 조건 지정
- WHERE 구와 GROUP BY 구는 같이 사용 할 수 없다.
- 내부 처리 순서에 따라 WHERE 구가 GROUP BY 구보다 빨리 처리되기 때문에 오류 발생한다.
내부처리
WHERE 구 -> GROUP BY 구 -> HAVING 구 -> SELECT 구 -> ORDER BY 구
- 그래서, WHERE 구 대신
HAVING 구
사용한다.
- SELECT 구의 별명도 HAVING 구와 GROUP BY 구와 같이 쓸 수 없다. 내부 처리 순서 이유 때문이다.
복수열의 그룹화
GROUP BY에서 지정한 열 이외의 열은 집계함수를 사용하지 않은 채 SELECT 구에 지정할 수 없다.
SELECT no, name, quantity FROM sample51 GROUP BY name;
no와 quantity 열에 의해서 에러 발생, 지정 열 name만 SELECT 구에 지정 가능
결괏값 정렬
- GROUP BY만으로는 실행결과 순서를 정렬할 수 없다.
그래서 ORDER BY 구를 지정해서 사용하면 된다.
출처 : SQL 첫걸음 아사이 아츠시 지음 [한빛미디어]