Database/SQL

[프로그래머스 SQL Lv.1] 조건에 맞는 회원수 구하기 (MySQL)

imnyoung 2025. 11. 24. 23:23

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

1. 테이블 : USER_INFO

Column name Type Nullable
USER_ID INTEGER FALSE
GENDER TINYINT(1) TRUE
AGE INTEGER TRUE
JOINED DATE FALSE
GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타낸다.

 

2. 문제

USER_INFO 테이블에서 (1) 2021년에 가입한 회원   (2) 나이가 20세 이상 29세 이하인 회원이 (3) 몇 명인지 출력하는 SQL문을 작성해주세요. (4) 다음과 같이 결과가 나와야 합니다.

USERS
3

 

3. 문제풀이

(1) 2021년에 가입한 회원

WHERE YEAR(datetime) = 2021
YEAR(x) : 함수이므로 x에 날짜, 컬럼 등을 입력하면 연도 부분을 반환한다.
*마찬가지로, MONTH(x), DAY(x) 함수도 각각 날짜의 월, 일 부분을 반환한다.

(2) 나이가 20세 이상 29세 이하인 회원이 (3) 몇 명인지 출력 & (4) USERS라고 결과가 나와야 함

SELECT count(*) as users   -- 조건에 만족하는 모든 회원 수를 users라는 별칭으로 반환
FROM user_info
WHERE year(joined) = 2021  -- 2021년 가입
AND age BETWEEN 20 AND 29  -- 20세 이상 29세 이하

 

4. 정답

따라서 정답은

SELECT count(*) as users
FROM user_info
WHERE year(joined) = 2021 
AND age BETWEEN 20 AND 29