๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/144855
๋ค์์ ์ด๋ ํ ์์ ์์ ํ๋งค์ค์ธ ๋์๋ค์ ๋์ ์ ๋ณด(BOOK), ํ๋งค ์ ๋ณด(BOOK_SALES) ํ
์ด๋ธ์
๋๋ค.
BOOK ํ
์ด๋ธ์ ๊ฐ ๋์์ ์ ๋ณด๋ฅผ ๋ด์ ํ
์ด๋ธ๋ก ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ต๋๋ค.
Column name | Type | Nullable | Description |
BOOK_ID | INTEGER | FALSE | ๋์ ID |
CATEGORY | VARCHAR(N) | FALSE | ์นดํ
๊ณ ๋ฆฌ (๊ฒฝ์ , ์ธ๋ฌธ, ์์ค, ์ํฉ, ๊ธฐ์ ) |
AUTHOR_ID | INTEGER | FALSE | ์ ์ ID |
PRICE | INTEGER | FALSE | ํ๋งค๊ฐ (์) |
PUBLISHED_DATE | DATE | FALSE | ์ถํ์ผ |
BOOK_SALES ํ
์ด๋ธ์ ๊ฐ ๋์์ ๋ ์ง ๋ณ ํ๋งค๋ ์ ๋ณด๋ฅผ ๋ด์ ํ
์ด๋ธ๋ก ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ต๋๋ค.
Column name | Type | Nullable | Description |
BOOK_ID | INTEGER | FALSE | ๋์ ID |
SALES_DATE | DATE | FALSE | ํ๋งค์ผ |
SALES | INTEGER | FALSE | ํ๋งค๋ |
๋ฌธ์
2022๋
1์์ ์นดํ
๊ณ ๋ฆฌ ๋ณ ๋์ ํ๋งค๋์ ํฉ์ฐํ๊ณ , ์นดํ
๊ณ ๋ฆฌ(CATEGORY), ์ด ํ๋งค๋(TOTAL_SALES) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
๊ฒฐ๊ณผ๋ ์นดํ
๊ณ ๋ฆฌ๋ช
์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์์
์๋ฅผ ๋ค์ด BOOK ํ ์ด๋ธ๊ณผ BOOK_SALES ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
BOOK_ID | CATEGORY | AUTHOR_ID | PRICE | PUBLISHED _DATE |
1 | ์ธ๋ฌธ | 1 | 10000 | 2020-01-01 |
2 | ๊ฒฝ์ | 1 | 9000 | 2021-02-05 |
3 | ๊ฒฝ์ | 2 | 9000 | 2021-03-11 |
BOOK_ID | SALES_DATE | SALES |
1 | 2022-01-01 | 2 |
2 | 2022-01-02 | 3 |
1 | 2022-01-05 | 1 |
2 | 2022-01-20 | 5 |
2 | 2022-01-21 | 6 |
3 | 2022-01-22 | 2 |
2 | 2022-02-11 | 3 |
๋ด๊ฐ ์์ฑํ ์ฝ๋
SELECT B.CATEGORY, SUM(BS.SALES) AS TOTAL_SALES
FROM BOOK B LEFT JOIN BOOK_SALES BS
ON B.BOOK_ID=BS.BOOK_ID
WHERE BS.SALES_DATE BETWEEN '2022-01-01' AND '2022-01-31'
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY;
์ฝ๋ ์ค๋ช
- SELECT B.CATEGORY, SUM(BS.SALES) AS TOTAL_SALES : BOOK ํ ์ด๋ธ์ CATEGORY ์ปฌ๋ผ๊ณผ BOOK_SALES ํ ์ด๋ธ์ SALES ์ปฌ๋ผ์ ํฉ๊ณ๋ฅผ TOTAL_SALES๋ผ๊ณ ์ง์ ํ๊ณ ์ ํํ๋ค.
- FROM BOOK B LEFT JOIN BOOK_SALES BS : BOOK ํ ์ด๋ธ์ B, BOOK_SALES๋ฅผ BS๋ก ์ง์ ํ ํ LEFT JOIN์ ํตํด ๋ฐ์ดํฐ๋ฅผ ํฉ์น๋ค.
- ON B.BOOK_ID = BS.BOOK_ID : BOOK ํ ์ด๋ธ์ BOOK_ID์ BOOK_SALES์ BOOK_ID๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ง LEFT JOIN์ ์งํํ๋๋ก ์กฐ๊ฑด์ ๊ฑธ์ด์ค๋ค.
- WHERE BS.SALES_DATE BETWEEN '2022-01-01' AND '2022-01-31' : BOOK_SALES ํ ์ด๋ธ์ SALES_DATE ์ปฌ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ด '2022-01-01'์ '2022-01-31' ์ฌ์ด์ ๊ฐ๋ง ๊ฐ์ ธ์จ๋ค.
- GROUP BY B.CATEGORY : BOOK ํ ์ด๋ธ์ CATEGORY ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ๋ค.
- ORDER BY B.CATEGORY : BOOK ํ ์ด๋ธ์ CATEGORY ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(SQL)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_์์๋๋ฐ์ ์์์ต๋๋ค (0) | 2024.11.21 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์ํ ๋ณ ์คํ๋ผ์ธ ๋งค์ถ ๊ตฌํ๊ธฐ (0) | 2024.11.20 |
ํ๋ก๊ทธ๋๋จธ์ค_์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(1) (0) | 2024.11.18 |
ํ๋ก๊ทธ๋๋จธ์ค_์ธ๊ธฐ์๋ ์์ด์คํฌ๋ฆผ (0) | 2024.11.15 |
ํ๋ก๊ทธ๋๋จธ์ค_12์ธ ์ดํ์ธ ์ฌ์ ํ์ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ (3) | 2024.11.14 |