๐ซ ๋ฌธ์
๐ซ CODE
SELECT a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS, ROUND(AVG(b.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO a
JOIN REST_REVIEW b ON a.REST_ID = b.REST_ID
WHERE a.ADDRESS LIKE '์์ธ%'
GROUP BY a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS
ORDER BY SCORE DESC, a.FAVORITES DESC;
SELECT a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS, ROUND(b.SCORE, 2) AS SCORE
FROM REST_INFO a
JOIN (
SELECT REST_ID, AVG(REVIEW_SCORE) AS SCORE
FROM REST_REVIEW
GROUP BY REST_ID)
b ON a.REST_ID = b.REST_ID
WHERE ADDRESS LIKE '์์ธ%'
GROUP BY a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS
ORDER BY SCORE DESC, FAVORITES DESC;
ย
๐ซ ํ์ด ์กฐ๊ฑด
1. ์์ธ์ ์์นํ ์๋น๋ค
2. ์๋น ID(REST_ID), ์๋น ์ด๋ฆ(REST_NAME), ์์ ์ข ๋ฅ(FOOD_TYPE), ์ฆ๊ฒจ์ฐพ๊ธฐ์(FAVORITES), ์ฃผ์(ADDRESS), ๋ฆฌ๋ทฐ ํ๊ท ์ ์ ์กฐํ
3. ๋ฆฌ๋ทฐ ํ๊ท ์ ์๋ ์์์ ์ธ ๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
4. ํ๊ท ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
5. ํ๊ท ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ฆ๊ฒจ์ฐพ๊ธฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
ย
๐ซ ํ์ด
1. SELECT a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS, ROUND(AVG(b.REVIEW_SCORE), 2) AS SCORE
- ์๋น ID(REST_ID), ์๋น ์ด๋ฆ(REST_NAME), ์์ ์ข ๋ฅ(FOOD_TYPE), ์ฆ๊ฒจ์ฐพ๊ธฐ์(FAVORITES), ์ฃผ์(ADDRESS), ๋ฆฌ๋ทฐ ํ๊ท ์ ์ ์กฐํ
- ROUND(์ปฌ๋ผ, ์ซ์)๋ฅผ ์ด์ฉํ์ฌ ์์์ ์ธ ๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
- AVG() ํจ์๋ฅผ ์ด์ฉํ์ฌ ํ๊ท ์ ์ ๊ณ์ฐ
2. JOIN REST_REVIEW b ON a.REST_ID = b.REST_ID
- JOIN์ ์ด์ฉํ์ฌ REST_REVIEW ํ ์ด๋ธ ์กฐ์ธ
- ๊ณตํต ์ปฌ๋ผ ์ง์
3. WHERE a.ADDRESS LIKE '์์ธ%'
- LIKE๋ฅผ ์ด์ฉํ์ฌ ์์ธ๋ก ์์ํ๋ ์ฃผ์ ์ฐพ๊ธฐ
- ์ฌ๊ธฐ์ ๊ณ์ ํ๋ ธ๋๋ฐ ๋ฌธ์ ์ ์ฃผ์๊ฐ ์์ธํน๋ณ์๋ ์๊ณ ์์ธ์๋ ์์ด์ ์์ธ๋ก ํด์ผ ์ ๋ต ์ฒ๋ฆฌ !
4. GROUP BY a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS
- GROUP BY๋ฅผ ์ด์ฉํ์ฌ ๊ทธ๋ฃน ์ง์
5. ORDER BY SCORE DESC, a.FAVORITES DESC
- ํ๊ท ์ ์(SCORE)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ, ํ๊ท ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ฆ๊ฒจ์ฐพ๊ธฐ์(FAVORITES)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ