풀이 TIP
서브쿼리 사용
+ YEAR, MONTH 함수 사용
+ JOIN 어떻게 할지 고민하기
오래 걸릴 문제가 아니었는데,
MONTH 함수 사용하지 않고 DATE_FORMAT(DATE, '%c')로 반환했더니 틀렸다.
DATE_FORMAT(DATE, '%m')로 해야 정답 처리 되었다. (대체 왜 ????????)
사실 아직도 왜 틀린지 모르겠지만, 다른 분의 풀이를 보고 더 간단하게 푸는 법을 알았으니 뭐~...
내 풀이
SELECT YEAR(SALES_DATE) YEAR,
MONTH(SALES_DATE) MONTH,
COUNT(DISTINCT ONLINE_SALE.USER_ID) AS PUCHASED_USERS,
ROUND(COUNT(DISTINCT ONLINE_SALE.USER_ID) / (SELECT COUNT(USER_ID)
FROM USER_INFO
WHERE YEAR(JOINED) = '2021'), 1) AS RATIO
FROM USER_INFO
LEFT OUTER JOIN ONLINE_SALE
ON USER_INFO.USER_ID = ONLINE_SALE.USER_ID
WHERE YEAR(JOINED) = '2021' AND ONLINE_SALE.USER_ID IS NOT NULL
GROUP BY YEAR, MONTH
'SQL' 카테고리의 다른 글
SQL 빠른 요약 (0) | 2023.05.12 |
---|---|
SQL 프로그래머스: 없어진 기록 찾기 (0) | 2023.05.12 |
SQL 프로그래머스: 동명 동물 수 찾기 (0) | 2023.05.12 |
SQL 프로그래머스: 자동차 대여 가능 여부 구분하기 (0) | 2023.05.12 |