String, Date
문제풀이
A1. UNION ALL 사용
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM (SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
UNION ALL
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
) AS A
WHERE SALES_DATE LIKE '2022-03%'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
※ UNION : 중복제거 + 테이블 세로로 결합(위+ 아래)
※ UNION ALL : 중복제거X + 테이블 세로로 결합(위+ 아래)
문제에 있는거 그대로 따라갔다. ONLINE_SALE에서 필요한거 그대로 가져오고, OFFLINE_SALE테이블에서 필요한거 그대로 가져오고 결합 (UNION은 위아래로 단순하게 붙이는 것이기 때문에 컬럼만 맞으면 나중에 지장은 없다)
OFFLINE_SALE 에서 USER_ID는 NULL로 하라고했기에 NULL을 중간에 넣어줬다
단순하게 붙이면 이런 결과가 나오고 이 테이블을 가지고 다시 조건출력하면 끝
A2. WITH 사용
중간에 결합된 테이블을 바로가져왔지만 WITH 함수를 이용하여 테이블 지정후 작성해도 풀 수 있다
'필기ㆍ코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스/MYSQL] 입양 시각 구하기(2) (0) | 2025.01.28 |
---|---|
[프로그래머스/MYSQL] 업그레이드 된 아이템 구하기 (0) | 2025.01.25 |
[프로그래머스/MYSQL] 분기별 분화된 대장균의 개체 수 구하기 (2) | 2025.01.15 |
[프로그래머스/MYSQL] 업그레이드 할 수 없는 아이템 구하기 (3) | 2025.01.14 |
[프로그래머스/MYSQL] 대장균들의 자식의 수 구하기 (0) | 2025.01.14 |