Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 리액트
- queryset
- 머신러닝종류
- db
- js
- git
- TypeScript
- 플로이드워셜
- 셀프넘버
- VITE
- sqld
- 데코레이터
- Javascript
- 백준
- PWA
- SSAFY
- 14658
- unionfind
- 싸피10기
- vitepwa
- 싸피셜
- 알고리즘
- react
- pwa적용하기
- SSAFYcial
- QuerySetAPI
- Django
- SQL
- 싸피
- Python
Archives
- Today
- Total
Meme's IT
[SQLD] 집계함수(GROUP BY, HAVING 등) 본문
# 다중행 집계 함수
여러 행들의 그룹이 모여서 그룹당 하나의 결과를 돌려주는 함수
- GROUP BY 절이 없으면 그룹할 대상이 없어서 에러 발생
- SELECT, HAVING, ORDER BY에 사용 가능 / WHERE에서는 불가능
- 공집합에서도 연산 가능
- ALL: 기본 옵션, 생략 가능 / DISTINCT: 중복 제거
# 집계함수 종류
🔹 COUNT
특정 열(column)의 행의 개수를 세는 함수
- COUNT(*): NULL을 포함한 테이블에 존재하는 행의 갯수가 반환
- COUNT(특정 열): NULL을 제외한 해당 열의 행의 갯수 반환
- AS로 결과로 나온 열의 별칭 지정가능
- DISTINT로 중복 제거 가능
SELECT COUNT(*) FROM tb;
SELECT COUNT(Name) FROM tb;
SELECT COUNT(Name) AS "My count" FROM tb;
SELECT COUNT(DISTINCT Country) FROM tb;
🔹 MIN/MAX
최대값과 최소값을 구하는 함수
- COUNT함수과 똑같이 쓰면 된다.
- 문자나 문자열도 가능 → 사전 순으로 반환된다.
SELECT MAX(Age) FROM tb;
SELECT MIN(Age) FROM tb;
🔹 AVG / SUM
선택한 열의 평균과 합을 계산하는 함수
- 숫자만 가능
- NULL값은 무시하고 계산함(0으로 치고 하고싶다면 작업 추가해야함)
SELECT AVG(Age) FROM tb;
SELECT SUM(Age) FROM tb;
# GROUP BY⭐
테이블의 일부 행만을 대상으로 집계함수를 사용할 수 있다.
예를 들어, 각 나라별 Age의 합을 구하고 싶다면 다음과 같이 쓸 수 있다.
SELECT Country, SUM(Age) FROM tb GROUP BY Country;
- GROUP BY 뒤에 오는 열의 값들을 묶어서 계산해준다.
- NULL값은 제외하고 수행하고
- ALIAS(별칭)은 사용할 수 없다
# HAVING ⭐
WHERE과 비슷한 역할을 하며, 주로 GROUP BY와 같이 쓰이는 조건문이다
WHERE은 집계함수를 사용할 수 없지만, HAVING은 집계 함수와 함께 사용 가능하다
SELECT Country, AVG(Age) FROM tb GROUP BY Country HAVING AVG(Age) >= 23;
: 평균 나이가 23세 이상인 나라들만 선택하는 절
'공부 > SQLD' 카테고리의 다른 글
[SQLD] 조인(JOIN) (0) | 2023.10.31 |
---|---|
[SQLD] ORDER BY (0) | 2023.10.31 |
[SQLD] WHERE절과 연산자 (0) | 2023.10.30 |
[SQLD] TCL(Transaction Control Language) (0) | 2023.10.30 |
[SQLD] DML(Data Manipulation Language) (0) | 2023.10.30 |