๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ’ก/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ _ ํŒŒ์ด์ฌ

by @ENFJ 2024. 6. 16.

 

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;