Rootable의 개발일기
프로그래머스 SQL 풀이 - 조건에 맞는 회원수 구하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131535
문제 설명
다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다.
GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.
문제
USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.
결과 예시
풀이
1. 나이가 20 ~ 29세라고 했으므로, 비교 연산자 또는 between ~ and 를 사용하면 된다.
- between A and B : A 이상 B 이하
2. 2021년에 가입한 회원을 뽑아야 하므로, joined 컬럼에 '2021'이 포함된 경우를 조건으로 주면 된다. 이것은 LIKE '2021%'로 처리할 수 있다.
3. 이를 만족하는 총 회원 수를 구해야 하므로, COUNT 집계 함수를 사용해야 한다.
- COUNT(*) : 전체 카운팅
- COUNT(조건) : 해당 조건에 맞는 것들만 카운팅
- COUNT(컬럼) : 해당 컬럼에 한해서 카운팅
4. 결과 예시를 보면 USERS 라고 되어 있어 AS(alias) 를 통해 변경해야 한다.
정답 코드
SELECT COUNT(*) as USERS
FROM USER_INFO
WHERE joined LIKE '2021%' and age between 20 and 29
SELECT COUNT(*) as USERS
FROM USER_INFO
WHERE YEAR(joined) = 2021 and age between 20 and 29
'프로그래머스 - SQL Kit' 카테고리의 다른 글
프로그래머스 SQL 풀이 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.05.23 |
---|---|
프로그래머스 SQL 풀이 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2023.05.22 |
프로그래머스 SQL 풀이 - 오프라인/온라인 판매 데이터 통합하기 (0) | 2023.05.19 |
프로그래머스 SQL 풀이 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.05.19 |
프로그래머스 SQL 풀이 - 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.05.19 |