반응형
본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.
- 집단(Population)에 대해 요약할 때는 대표성을 갖는 수치가 필요
- EX) 합계, 평균, 오차(최대값과 최소값 간의 거리, 표준편차, 분산)
SUM 함수
MAX 함수
MIN 함수
STD 함수
- SQLite에서는 지원하지 않는 함수
- MySQL에서는 STD함수와 STDDEV 모두 같은 기능으로 사용 가능
AVG 함수
- 위의 예는 NULL값을 제외한 3개의 행에 대한 평균값을 계산한 것
- NULL값을 0으로 치환하기 위해서는?? -> COALESCE 함수 사용
SELECT AVG(COALESCE(수학점수, 0)) AS 수학점수_평균 FROM 점수테이블;
예제 (테이블: STUD_SCORE)
더보기
CREATE TABLE STUD_SCORE
(
STUDENT_ID INT NOT NULL,
MATH_SCORE INT NOT NULL,
ENG_SCORE INT NULL,
PHIL_SCORE INT NULL,
MUSIC_SCORE INT NULL,
PRIMARY KEY('STUDENT_ID')
);
INSERT INTO STUD_SCORE
VALUES
('0123511', 89, 78, 45, 90),
('0255475', 88, 90, NULL, 87),
('9921100', 87, NULL, NULL, 98),
('9732453', 69, 98, 78, 78),
('0578981', 59, 90, 89, NULL),
('0768789', 94, 80, 87, 99),
('9824579', 90, 90, 78, 87),
('0565789', 58, 64, 72, NULL);
Q1. 수학 점수의 총 합계
SELECT SUM(MATH_SCORE) AS MATH_TOTAL FROM STUD_SCORE;
MATH_TOTAL |
634 |
Q2. 음악 점수의 평균 (NULL값 행 제외)
SELECT AVG(MUSIC_SCORE) AS MUSIC_AVG FROM STUD_SCORE;
MATH_AVG |
89.83333 |
Q3. 음악 점수의 평균 (NULL값 행 포함)
SELECT AVG(COALESCE(MUSIC_SCORE, 0)) AS MUSIC_AVG FROM STUD_SCORE;
MATH_AVG |
67.375 |
반응형
'SQL' 카테고리의 다른 글
[SQL] 그룹화된 데이터의 필터링 (HAVING) (0) | 2022.02.17 |
---|---|
[SQL] 데이터의 그룹화 (GROUP BY) (0) | 2022.02.16 |
[SQL] 행의 수 세기 (COUNT) (0) | 2022.02.14 |
[SQL] 조건문 적용하기 (CASE WHEN) (0) | 2022.02.14 |
[SQL] 숫자 함수 (0) | 2022.02.12 |