Contents
내가 작성한 쿼리

2019년 구매자로서 각 사용자, 가입 날짜 및 주문 수를 찾기 위한 솔루션을 작성하세요.
결과 테이블을 순서에 상관없이 반환하세요.
내가 작성한 쿼리
MySQL
SELECT
u.user_id AS buyer_id,
u.join_date,
IFNULL(COUNT(o.order_id), 0) AS orders_in_2019
FROM
Users u
LEFT JOIN
Orders o
ON u.user_id = o.buyer_id
AND YEAR(o.order_date) = 2019 -- 19년도 인것만
GROUP BY
u.user_id, u.join_date;
Oracle
SELECT
u.user_id AS buyer_id,
TO_CHAR(u.join_date, 'YYYY-MM-DD') AS join_date,
NVL(COUNT(o.order_id), 0) AS orders_in_2019
FROM
Users u
LEFT JOIN
Orders o
ON u.user_id = o.buyer_id
AND EXTRACT(YEAR FROM o.order_date) = 2019
GROUP BY
u.user_id, u.join_date;
차이점
항목 | MySQL | Oracle |
연도 추출 함수 | YEAR(date_col) | EXTRACT(YEAR FROM date_col) |
NULL 대체 함수 | IFNULL(expr, 0) | NVL(expr, 0) |
날짜 표시 방식 차이 | '2019-08-16' | TO_DATE('2019-08-16', 'YYYY-MM-DD') |
Share article