WITH TORDER AS (
SELECT FLAVOR, SUM(TOTAL_ORDER) AS SUM
FROM JULY
GROUP BY FLAVOR
)
SELECT A.FLAVOR
FROM FIRST_HALF A
JOIN TORDER B
ON A.FLAVOR = B.FLAVOR
ORDER BY (A.TOTAL_ORDER + B.SUM) DESC
LIMIT 3
;
WITH BOOKSALES AS (
SELECT AUTHOR_ID, CATEGORY, (B.PRICE*SUM(S.SALES)) AS TOTAL_SALES
FROM BOOK B
JOIN BOOK_SALES S
ON B.BOOK_ID = S.BOOK_ID
WHERE SALES_DATE LIKE '2022-01%'
GROUP BY B.BOOK_ID
)
SELECT A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY, SUM(B.TOTAL_SALES) AS TOTAL_SALES
FROM AUTHOR A
JOIN BOOKSALES B
ON A.AUTHOR_ID = B.AUTHOR_ID
GROUP BY A.AUTHOR_ID, B.CATEGORY
ORDER BY A.AUTHOR_ID ASC, B.CATEGORY DESC
;
WITH TOTAL_COUNTS AS (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY CAR_ID
HAVING COUNT(HISTORY_ID)>= 5
)
SELECT MONTH(A.START_DATE) AS MONTH, A.CAR_ID, COUNT(A.HISTORY_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY A
JOIN TOTAL_COUNTS B
ON A.CAR_ID = B.CAR_ID
WHERE A.START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY MONTH(A.START_DATE), A.CAR_ID
HAVING COUNT(A.HISTORY_ID) != 0
ORDER BY MONTH(A.START_DATE) ASC, A.CAR_ID DESC
;
SET @MAX = (
SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(REVIEW_ID) DESC
LIMIT 1
);
SELECT A.MEMBER_NAME, B.REVIEW_TEXT, DATE_FORMAT(B.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE A
JOIN REST_REVIEW B
ON A.MEMBER_ID = B.MEMBER_ID
WHERE A.MEMBER_ID = @MAX
ORDER BY B.REVIEW_DATE ASC, B.REVIEW_TEXT ASC
;
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE SALES_DATE LIKE '2022-03%'
UNION ALL
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE '2022-03%'
ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC
;
| SALES_DATE | PRODUCT_ID | USER_ID | SALES_AMOUNT |
|---|---|---|---|
| 2022-03-01 | 1 | NULL | 2 |
| 2022-03-01 | 3 | NULL | 3 |
| 2022-03-01 | 4 | NULL | 1 |
| 2022-03-01 | 4 | 4 | 1 |
| 2022-03-02 | 2 | 2 | 2 |
| 2022-03-02 | 3 | 6 | 3 |
| 2022-03-03 | 2 | NULL | 1 |
| 2022-03-03 | 5 | 5 | 1 |
분명 문제 상으로는 문자열 'NULL'로 표기하라고 되어있지만 NULL(공백)으로 제출해야 정답으로 인정됨...하
UNION: 컬럼이 같은 두 테이블을 수직으로 합침, 중복제거
UNION ALL: 중복도 포함해서 합침
ALTER TABLE 테이블명: 테이블 편집, 아래 항목을 뒤에 붙여서 사용
ADD 컬럼명 데이터형: 테이블에 컬럼을 추가, 뒤에 DEFALT 디폴트 값을 추가하여 디폴트 값 설정 가능MODIFY 컬럼명 데이터형: 컬럼 데이터 타입 변경DROP 컬럼명 바꿀_컬럼명 데이터형: 컬럼 삭제CHANGE/RENAME 컬럼명 데이터형: 컬럼 이름 변경RENAME TO 바꿀_테이블_이름: 테이블 이름 변경근데 프로그래머스에서는 테이블을 변경이 불가능 -> ALTER TABLE못씀