
| ํ ์ด๋ธ ์ปฌ๋ผ | ๋ด๊ฐ ์ด ๊ฒ |
|---|---|
| experience | year |
| nights | night |
| member_id | member |
| visited_at | visitied_at |
| reserved_at | reservation_at |
๐ก ๊ตํ:
์ปฌ๋ผ๋ช ์ ์ธ์์ ์ฐ์ง ๋ง๊ณ , ํ ์ด๋ธ ์ ์ ๋ณด๋ฉด์ ๊ทธ๋๋ก ์ฐ์!
-- ๋ด๊ฐ ์ด ๊ฒ
left join promotions pm on pm.product_id = pr.id -- โ pr ์์!
s.name -- โ s๋ sales์ธ๋ฐ sales์ name ์์!
-- ์ ๋ต
left join promotions pm on pm.product_id = pd.id -- โ
pd
st.name -- โ
st๋ stores
๐ก ๊ตํ:
๋ณ์นญ ์ ํ๋ฉด ์ผ๊ด์ฑ ์๊ฒ! ์ฐ๊ธฐ ์ ์ ํ ๋ฒ ๋ ํ์ธ!
-- ํ
์ด๋ธ 3๊ฐ์ธ๋ฐ JOIN 2๊ฐ๋ง ํจ
FROM employees e
JOIN sales s ON s.employee_id = e.id
-- โ stores ํ
์ด๋ธ ๋น ์ง!
๐ก ๊ตํ:
ํ์ํ ํ ์ด๋ธ ๊ฐ์ = JOIN ๊ฐ์ ํ์ธํ์!
-- ๋ฌธ์ : "3๊ฑด ์ด์", "์ค๋ฆ์ฐจ์ ์ ๋ ฌ"
WHERE rn_desc = 2
-- โ order_cnt >= 3 ๋น ์ง!
-- โ ORDER BY ๋น ์ง!
๐ก ๊ตํ:
๋ฌธ์ ์กฐ๊ฑด ๋๊น์ง ์ฝ๊ณ , ์ฒดํฌํ๋ฉด์ ์ฟผ๋ฆฌ ์์ฑ!
-- CTE์์
DATE_FORMAT(reserved_at, '%Y-%m-%d %T') AS reserved_at
-- SELECT์์
SELECT reservation_at -- โ ์ด๋ฆ ๋ค๋ฆ!
SELECT reserved_at -- โ
์ผ์น!
๐ก ๊ตํ:
CTE์์ AS๋ก ์ ํ ์ด๋ฆ = SELECT์์ ์ฐ๋ ์ด๋ฆ!
-- ๋ด๊ฐ ์ด ๊ฒ
GROUP BY st.name -- โญ ๋์์ ํจ
-- ๋ ์์ ํ ๊ฒ
GROUP BY st.id, st.name -- โ
id + name ๋ ๋ค!
๐ก ๊ตํ:
GROUP BY์ PK(id) + name ๋ ๋ค ์ฐ๋ฉด ์์ !
์ฟผ๋ฆฌ ์ ์ถ ์ ์ ํ์ธํ์!
| ํญ๋ชฉ | ์ฒดํฌ |
|---|---|
| ์ปฌ๋ผ๋ช ํ ์ด๋ธ ์ ์์ ์ผ์น? | โฌ |
| ๋ณ์นญ ์ผ๊ด์ฑ ์๊ฒ ์ผ๋? | โฌ |
| ํ์ํ ํ ์ด๋ธ ๋ค JOIN ํ๋? | โฌ |
| ๋ฌธ์ ์กฐ๊ฑด ๋ค ๋ฐ์ํ๋? (N๊ฐ ์ด์, ์ ๋ ฌ ๋ฑ) | โฌ |
| CTE ๋ณ์นญ = SELECT ์ปฌ๋ผ๋ช ์ผ์น? | โฌ |
| GROUP BY์ id + name ์๋? | โฌ |
"๋ก์ง์ด ๋ง์๋ ์คํ ํ๋๋ฉด 0์ !"
์ ์ถ ์ 30์ด ํฌ์ํด์ ์ปฌ๋ผ๋ช /๋ณ์นญ ํ์ธํ์!
