[MySQL] 프로그래머스 - 조건에 맞는 회원수 구하기

켈로그·2025년 6월 11일

SQL

목록 보기
9/20

문제 정보: 프로그래머스 - SELECT 고득점 KIT - 조건에 맞는 회원수 구하기

USER_INFO 테이블은 의류 쇼핑몰에 가입한 회원 정보를 담고 있으며, 각 컬럼은 다음을 의미합니다:

Column nameTypeNullable설명
USER_IDINTEGERFALSE회원 ID
GENDERTINYINT(1)TRUE성별 (0: 남자, 1: 여자, NULL: 미입력)
AGEINTEGERTRUE나이 (NULL 가능)
JOINEDDATEFALSE가입일

문제 설명

2021년에 가입한 회원 중,
나이가 20세 이상 29세 이하인 회원의 수를 구하는 SQL을 작성하시오.


예시 데이터

USER_IDGENDERAGEJOINED
11262021-10-05
20NULL2021-11-25
31222021-11-30
40312021-12-03
50282021-12-16
61242022-01-03
71NULL2022-01-09

→ 조건에 맞는 회원은 USER_ID = 1, 3, 5
→ 결과: 3명


정답

SELECT COUNT(*) AS USERS
FROM user_info
WHERE YEAR(joined) = 2021
  AND age BETWEEN 20 AND 29;

포인트

YEAR() 함수

  • 날짜에서 연도(4자리 정수) 를 추출
  • 예: YEAR('2021-10-05') → 2021
-- 잘못된 예시
WHERE DATE_FORMAT(joined, '%y') = '2021'
-- '%y'는 2자리 연도 → '21'과 '2021'은 다르므로 조건 불일치

날짜 관련 함수 :

나이 범위는 BETWEEN 20 AND 29

  • BETWEEN은 양 끝 포함
  • BETWEEN 20 AND 30으로 쓰면 30세도 포함되므로 틀림
profile
호랑이기운

0개의 댓글