본문 바로가기
자격/SQL

DATE 추출은 EXTRACT

by 올럭Dev 2024. 12. 11.
728x90

프로그래머스 문제 풀이

 

EXTRACT(MONTH FROM SALES_DATE) AS MONTH
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

LTRIM으로 MONTH의 0을 제거  (01 > 1, 02 > 2 ...) >>> 결과는 같은데 정답 틀림..

SELECT YEAR, MONTH, GENDER, COUNT(USER_ID) AS USERS
FROM (
	SELECT DISTINCT
    TO_CHAR(A.SALES_DATE, 'YYYY') AS YEAR
    , LTRIM(TO_CHAR(A.SALES_DATE, 'MM'), '0') AS MONTH
    , A.USER_ID
    , B.GENDER    
    FROM ONLINE_SALE A, USER_INFO B
    WHERE A.USER_ID = B.USER_ID
    AND B.GENDER IS NOT NULL        
    )
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER;

 

MONTH 추출하는 부분 EXTRACT 변경 >>> 패스

리턴 타입을 NUMBER로 해야 통과되는 거였음! TO_NUMBER로 하니 통과됨

, TO_NUMBER(LTRIM(TO_CHAR(A.SALES_DATE, 'MM'), '0')) AS MONTH

SELECT YEAR, MONTH, GENDER, COUNT(USER_ID) AS USERS
FROM (
	SELECT DISTINCT
    TO_CHAR(A.SALES_DATE, 'YYYY') AS YEAR
    , EXTRACT(MONTH FROM SALES_DATE) AS MONTH
    , A.USER_ID
    , B.GENDER    
    FROM ONLINE_SALE A, USER_INFO B
    WHERE A.USER_ID = B.USER_ID
    AND B.GENDER IS NOT NULL        
    )
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER;

 

728x90

'자격 > SQL' 카테고리의 다른 글

숫자형 함수 - CEIL, FLOOR, ROUND, TRUNC  (0) 2024.12.12
문자형 함수 - LTRIM, RTRIM, TRIM  (0) 2024.12.11
UNION, UNION ALL 비교  (0) 2024.12.10
데이터 모델 - 트랜잭션 표현  (0) 2024.11.27
상호배타적 관계  (0) 2024.11.26