프로그래머스/[프로그래머스 - ORACLE] Lv.4
[프로그래머스 - ORACLE] 년, 월, 성별 별 상품 구매 회원 수 구하기
코딩하는 흰둥이
2023. 3. 23. 21:34
CREATE 문
CREATE TABLE USER_INFO (
USER_ID NUMBER NOT NULL,
GENDER NUMBER NULL,
AGE NUMBER NULL,
JOINED DATE NOT NULL
)
CREATE TABLE ONLINE_SALE (
ONLINE_SALE_ID NUMBER NOT NULL,
USER_ID NUMBER NOT NULL,
PRODUCT_ID NUMBER NOT NULL,
SALES_AMOUNT NUMBER NOT NULL,
SALES_DATE DATE NOT NULL
)
- 내 풀이
SELECT
TO_NUMBER(TO_CHAR(S.SALES_DATE, 'YYYY'))AS YEAR,
TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))AS MONTH,
I.GENDER AS GENDER,
COUNT(DISTINCT(I.USER_ID)) AS USERS
FROM USER_INFO I INNER JOIN ONLINE_SALE S
ON I.USER_ID = S.USER_ID
AND I.GENDER IS NOT NULL
GROUP BY TO_CHAR(S.SALES_DATE, 'YYYY'), TO_CHAR(S.SALES_DATE, 'MM'), I.GENDER
ORDER BY YEAR ASC , MONTH ASC , GENDER ASC
TO_NUMBER(TO_CHAR(S.SALES_DATE, 'YYYY'))AS YEAR,
TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))AS MONTH,
부분에서 TO_NUMBER를 사용하지 않으면 틀린 답으로 나온다 왜일까...?
문자열로 바꿔서 타입이 달라서 그런가...