CODING TEST/MySQL

Lv1 - 조건에 맞는 회원수 구하기

iamyuunzo 2025. 7. 15. 21:42

📌 문제 정보

- 문제 이름 : 프로그래머스 - (SELECT) 조건에 맞는 회원수 구하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131535

 

 

📌 문제 요약

- USER_INFO 테이블 : USER_ID(회원 ID), GENDER(성별 - 여 1, 남0), AGE(나이), JOINED(가입일)

- USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성

예시) 

USER_ID GENDER AGE JOINED
1 1 26 2021-10-05
2 0 NULL 2021-11-25
3 1 22 2021-11-30
4 0 31 2021-12-03
5 0 28 2021-12-16
6 1 24 2022-01-03
7 1 NULL 2022-01-09

 

출력)

- USER_ID가 1, 3, 5인 회원들

USERS
3

 

 

 

📌 내 풀이 및 코드

SELECT COUNT(*) 				# 몇 명?
FROM USER_INFO					# USER_INFO 테이블에서
WHERE YEAR(JOINED) = 2021 		# 2021년에 가입한 회원 중
    AND AGE >= 20 				# 나이가 20세 이상
    AND AGE <=29 				# 나이가 29세 이하
    AND AGE IS NOT NULL;

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

** COUNT(*) **

- 조건 이 붙으면 조건을 만족하는 행의 개수를 셈.

- * : 모든 컬럼을 의미 (NULL 여부에 관계 없이 셈)

 

** IS NOT NULL을 왜 써야하는지? **

- 의미 : 값이 비어있지 않은 것만 고르기. (값이 들어 있는 것만 골라줘!)

- SQL 엔진이 알아서 NULL은 조건문에서 제외하지만, 협업이나 유지보수 생각할 때 의도를 명확히 하기 위해 넣는걸 추천