문제
💡 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 로 풀이하였다
'SQL > 코딩테스트' 카테고리의 다른 글
[leetcode / MySQL] 1179. Reformat Department Table (4) | 2024.01.29 |
---|---|
[프로그래머스 / MySQL] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.01.29 |
[프로그래머스 / MySQL] 중복 제거하기 (0) | 2024.01.29 |
[프로그래머스 / MySQL] 여러 기준으로 정렬하기 (0) | 2024.01.29 |
[프로그래머스 / MySQL] 상위 n개 레코드 (0) | 2024.01.29 |