[ํ๋ก๊ทธ๋๋จธ์ค level 3] ์นดํ ๊ณ ๋ฆฌ ๋ณ ๋์ ํ๋งค๋ ์ง๊ณํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ค์์ ์ด๋ ํ ์์ ์์ ํ๋งค์ค์ธ ๋์๋ค์ ๋์ ์ ๋ณด(BOOK), ํ๋งค ์ ๋ณด(BOOK_SALES) ํ ์ด๋ธ์ ๋๋ค.
BOOK ํ ์ด๋ธ์ ๊ฐ ๋์์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ๋ก ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ต๋๋ค.
Column nameTypeNullableDescription
BOOK_ID | INTEGER | FALSE | ๋์ ID |
CATEGORY | VARCHAR(N) | FALSE | ์นดํ ๊ณ ๋ฆฌ (๊ฒฝ์ , ์ธ๋ฌธ, ์์ค, ์ํ, ๊ธฐ์ ) |
AUTHOR_ID | INTEGER | FALSE | ์ ์ ID |
PRICE | INTEGER | FALSE | ํ๋งค๊ฐ (์) |
PUBLISHED_DATE | DATE | FALSE | ์ถํ์ผ |
BOOK_SALES ํ ์ด๋ธ์ ๊ฐ ๋์์ ๋ ์ง ๋ณ ํ๋งค๋ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ๋ก ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ต๋๋ค.
Column nameTypeNullableDescription
BOOK_ID | INTEGER | FALSE | ๋์ ID |
SALES_DATE | DATE | FALSE | ํ๋งค์ผ |
SALES | INTEGER | FALSE | ํ๋งค๋ |
๋ฌธ์
2022๋ 1์์ ์นดํ ๊ณ ๋ฆฌ ๋ณ ๋์ ํ๋งค๋์ ํฉ์ฐํ๊ณ , ์นดํ ๊ณ ๋ฆฌ(CATEGORY), ์ด ํ๋งค๋(TOTAL_SALES) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
๊ฒฐ๊ณผ๋ ์นดํ ๊ณ ๋ฆฌ๋ช ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
๋ฌธ์ ํ์ด
SELECT CATEGORY, SUM(SALES) AS TOTAL_SALES FROM BOOK
JOIN BOOK_SALES ON BOOK.BOOK_ID=BOOK_SALES.BOOK_ID
WHERE SALES_DATE LIKE '2022-01%'
GROUP BY CATEGORY
ORDER BY CATEGORY;
์ฐ์ BOOK_SALES ํ ์ด๋ธ๊ณผ BOOK ํ ์ด๋ธ์ ๊ฐ ํ ์ด๋ธ์ BOOK_ID๋ฅผ ๊ธฐ์ค์ผ๋ก JOINํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ผ๋ ์นด๋๋ฅผ ์ด์ฉํด์ SALES_DATE๊ฐ '2022-01'๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ค.
๊ทธ ํ์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก GROUP BY๋ฅผ ํด์ฃผ๊ณ , GROUP BY๋ ํ ์ด๋ธ์์ ์นดํ ๊ณ ๋ฆฌ ์ด๋ฆ๊ณผ ๊ฐ ๊ทธ๋ฃน๋ณ(์นดํ ๊ณ ๋ฆฌ๋ณ)๋ก ํ๋งค๋์ ๋ชจ๋ ํฉํ ๊ฐ์ ์ถ์ถํ๋ค.
์นดํ ๊ณ ๋ฆฌ ์ด๋ฆ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ์ถ๋ ฅํ๋ค.