SQL/MY SQL 문제 풀이(프로그래머스)

[MYSQL] PROGRAMMERS_조건에 맞는 회원수 구하기

SQL공부 2024. 2. 21. 00:14
반응형

SELECT count(USER_ID) as USERS
FROM USER_INFO
WHERE 1=1
AND JOINED like '2021%'
AND AGE between 20 and 29

USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냄

 

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

 

2가지의 조건을 만족하는 USER 데이터의 수를 조회 하는 문제이다. 

2021년 데이터는 like '2021%' 를 통해 2021을 앞자리로 가지는 날짜 데이터를 필터링 해주었고

나이는 20세에서 29세의 범위 데이터로 between 구문을 통해 필터 처리 해주었다.

이 데이터의 총 개수를 구해야하기에 Count 를 통해서 컬럼내 데이터 수를 세어 주어야 하는데 USER_ID 컬럼이 유저 데이터의 유니크함을 가져 해당컬럼을 선택하여 COUNT 처리 하였다. 좀더 깔끔한 처리를 위해서 count(distinct USER_ID)처리를 해도 무방하다

 

반응형