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