본문 바로가기
SQL/코딩테스트

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

by Hi_heidi 2024. 1. 29.

문제

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

 

테이블 형태

테이블 / 출력 결과

 

풀이

SELECT COUNT(*) AS USERS FROM USER_INFO
WHERE LEFT(JOINED, 4) = 2021 AND AGE BETWEEN 20 AND 29

 

해설

SELECT COUNT(*) AS USERS FROM USER_INFO
  • 회원 명 수를 출력해야 하기 때문에 COUNT(*) 사용
  • 예시를 참고하여 USERS라는 이름으로 컬럼명 설정
WHERE LEFT(JOINED, 4) = 2021 AND AGE BETWEEN 20 AND 29
  • YYYY-MM-DD 형태로 가입일자가 기록된 JOINED 컬럼에서 LEFT 를 사용하여 연도가 2021인 회원 찾기
  • 조건문 AND 로 나이 조건과 연결, BETWEEN AND 구문으로 20세 이상 29세 이하 나이 조건 기입

 

2번째 풀이

SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE YEAR(JOINED) = 2021
        AND (AGE >= 20 AND AGE <= 29)
  • 가입일자 조건을 만족하는 데이터를 추출할 때 YEAR 로 추출하여 더 쉽게 풀이하는 방법을 새로 알게 되어 별표를 친 것 같다
  • 2번째는 가볍게 YEAR 로 풀이하였다