https://school.programmers.co.kr/learn/courses/30/lessons/131115
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
SELECT P.PRODUCT_CODE,
SUM(P.PRICE * O.SALES_AMOUNT) AS TOTAL_SALES
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY TOTAL_SALES DESC, P.PRODUCT_CODE ASC;
1. ํ ์ด๋ธ ์กฐ์ธ
๋จผ์ product ํ ์ด๋ธ๊ณผ offline_sale ํ ์ด๋ธ์ product_id ๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ์ธํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ์ํ์ ๋ํ ํ๋งค ์ ๋ณด์ ์ํ ์ ๋ณด๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค.
SELECT *
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID;
2. ๋งค์ถ์ก ๊ณ์ฐ
์กฐ์ธ๋ ๊ฒฐ๊ณผ์์ ๊ฐ ํ๋งค์ ๋งค์ถ์ก์ ๊ณ์ฐํฉ๋๋ค. ๋งค์ถ์ก์ PRICE ์ SALES_AMOUNT ๋ฅผ ๊ณฑํ์ฌ ์ป์ ์ ์์ต๋๋ค.
SELECT P.PRODUCT_CODE,
P.PRICE * O.SALE_AMOUNT AS SALES
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID;
3. ๋งค์ถ์ก ํฉ๊ณ ๊ตฌํ๊ธฐ
์ํ์ฝ๋๋ณ๋ก ๋งค์ถ์ก์ ํฉ๊ณ๋ฅผ ๊ตฌํฉ๋๋ค. ์ด๋ฅผ ์ํด GROUP BY ์ ์ ์ฌ์ฉํ์ฌ ์ํ ์ฝ๋๋ณ๋ก ๊ทธ๋ฃนํ ํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ ๋งค์ถ์ก์ ํฉ์ฐํฉ๋๋ค.
SELECT P.PRODUCT_CODES, SUM(P.PRICE * O.SALES_AMOUNT) AS TOTAL_SALES
FROM PRODUCT P
JOIN OFFINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
4. ์ ๋ ฌ
๋ง์ง๋ง์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋งค์ถ์ก์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๋งค์ถ์ก์ด ๊ฐ์ ๊ฒฝ์ฐ ์ํ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํฉ๋๋ค.
SELECT P.PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) AS TOTAL_SALES
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY TOTAL_SALES DESC, P.PRODUCT_CODE ASC;
'์๊ณ ๋ฆฌ์ฆ ๐ก > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์๋ฒ(Greedy) ์ฒด์ก๋ณต (1) | 2024.08.31 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ _ ํ์ด์ฌ (1) | 2024.06.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ๊ฒฉ์ด ์ ์ผ ๋น์ผ ์ํ์ ์ ๋ณด ์ถ๋ ฅํ๊ธฐ _ SQL (1) | 2024.06.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ธ๊ท ์ฆ์_ํ์ด์ฌ ํ์ด (0) | 2024.06.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ค๋ณต๋ ์ซ์ ๊ฐ์_ํ์ด์ฌ ํ์ด (0) | 2024.06.13 |