프로그래머스

[프로그래머스/MySQL] Lv1. 나이 정보가 없는 회원 수 구하기

ruming 2024. 9. 27. 19:34

컬럼에서 NULL값의 개수를 구하는 문제다.

NULL값인 레코드의 개수를 구하는 방법은 여러 가지가 있다.

 

1. 전체 개수에서 null값이 아닌 행의 개수를 빼기

COUNT(*)는 null을 포함한 모든 행의 개수를 세지만 count(컬럼)은 null 값을 제외한 행의 개수를 센다. 이 차이를 이용하여 null값인 행의 개수를 구할 수 있다.

SELECT COUNT(*)-COUNT(AGE) AS USERS FROM USER_INFO

 

2. CASE문 이용

CASE 문을 이용해 NULL이면 값을 1로, NULL이 아닌 값을 0으로 바꾸고 SUM함수로 합치는 방법이다.

SELECT SUM(CASE WHEN AGE IS NULL THEN 1 ELSE 0 END) AS USERS FROM USER_INFO

 

COUNT 함수를 사용해서도 구할 수 있다. count(컬럼)이 null을 제외하고 개수를 센다는 점을 이용하여 NULL이면 1, NULL이 아니면 NULL로 바꾸어 count 함수로 세어주면 된다.

SELECT COUNT(CASE WHEN AGE IS NULL THEN 1 ELSE NULL END) AS USERS FROM USER_INFO