반응형

본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.

COUNT 함수를 이용하면 행의 수를 셀 수 있다. 이 때, NULL 값의 포함여부/ 중복 포함 여부에 따라 함수 사용이 달라질 수 있다.

1. NULL값, 중복 값들 포함 모든 행의 수를 계산할 경우: COUNT(*)

2. NULL값은 제외, 중복 값은 포함하여 행의 수를 계산할 경우: COUNT(열이름)

3. NULL값, 중복값 모두 제외하여 행의 수를 계산할 경우: COUNT(DISTINCT 열이름)

예제 (테이블: 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. NULL 값을 포함한 행의 개수 

SELECT COUNT(*) AS CNT FROM STUD_SCORE;
CNT
8

 

Q2. NULL 값을 제외한 음악 점수 보유자를 세는 쿼리문 

SELECT COUNT(MUSIC_SCORE) AS MUSIC_CNT FROM STUD_SCORE;
MUSIC_CNT
6

 

 Q3. 테이블을 사용하여 NULL값 및 중복된 값 제외한 영어 점수 보유자를 세는 쿼리문

SELECT COUNT(DISTINCT ENG_SCORE) AS ENG_CNT FROM STUD_SCORE;
ENG_CNT
6

 

반응형

+ Recent posts