
"SQL ์ฝํ ๋ ๊ฒฐ๊ตญ ์ํ, ๊ตญ์ด, ์์ด ๋ฌธ์ ๋ ๋๊ฐ๋ค!"
๋ฌธ์ ์์ ๋ต์ด ์๋ค!
.
.
.
.
.
.
.
๋ฌธ์ :
"์๋งx์๋น ์กฐํฉ์ด ์๋, ์๋ง, ์๋น ๊ฐ๊ฐ์ ๊ฐ์ฅ ์ด๋ฆฐ ์๋ "
๋ฒ์ญ:
(์๋น ์ฟผ๋ฆฌ)
UNION ALL
(์๋ง ์ฟผ๋ฆฌ)
๋ฌธ์ :
"๋งค๋์ ๋ณ ๊ฐ์ฅ ์ต๊ทผ ์ ์ฌํ ์ง์"
๋ฒ์ญ:
SELECT manager.name, MAX(employee.hire_date)
FROM employees manager
JOIN employees employee ON employee.manager_id = manager.id
GROUP BY manager.id, manager.name
| ํค์๋ | ์๋ฏธ | SQL |
|---|---|---|
| "~๋ณ" | ๊ทธ๋ฃนํ ํ์ | GROUP BY |
| "~ํ์ง ์์" | ์๋ ๊ฒ ์ฐพ๊ธฐ | LEFT JOIN + IS NULL |
| "๊ฐ์ฅ ~ํ" | ์ต๋/์ต์ | MAX() / MIN() |
| "๊ฐ๊ฐ" | ๋ฐ๋ก ๊ตฌํด์ ํฉ์น๊ธฐ | UNION ALL |
| "์ฒซ ๋ฒ์งธ", "N๋ฒ์งธ" | ์์ | ROW_NUMBER() |
| "~์" | ๊ฐ์ ์ธ๊ธฐ | COUNT() |
๋ฌธ์ :
"๋ชจ๋ ์ฐจ๊ฐ ์ด๋ฒคํธ์ ์ฐธ์ฌํ ํ์ฌ๋ ๊ฒฐ๊ณผ์์ ์ ์ธ"
์ฒ์ ์๊ฐ:
"์ด๋ป๊ฒ ์ ์ธํ์ง...? HAVING? NOT IN?"
์ ๋ต:
์ฌ์ค ์๋์ผ๋ก ์ ์ธ๋จ!
WHERE IS NULL ํ๋ฉด ๋ฏธ์ฐธ์ฌ ์ฐจ๋ง ๋จ๋๋ฐ,
๋ชจ๋ ์ฐจ๊ฐ ์ฐธ์ฌํ ํ์ฌ = ๋ฏธ์ฐธ์ฌ ์ฐจ 0๋ = ๊ฒฐ๊ณผ์ ์ ๋์ด!
๊ตํ:
๋ณต์กํ๊ฒ ์๊ฐํ์ง ๋ง๊ณ , ์ฟผ๋ฆฌ ํ๋ฆ ๋ฐ๋ผ๊ฐ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ํด๊ฒฐ๋๋ ๊ฒฝ์ฐ๋ ์๋ค!
| ์๋ชป๋ ๋ฐฉ๋ฒ | ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ |
|---|---|
| ์ผ๋จ ์ฟผ๋ฆฌ๋ถํฐ ์ด๋ค | ๋ฌธ์ ์๊ตฌ์ฌํญ ๋จผ์ ํ์ |
| ๋จธ๋ฆฌ๋ก๋ง ์๊ฐ | ํ ์ด๋ธ ์๊ฐํ |
| ๋ณต์กํ๊ฒ ์ ๊ทผ | ๋ฌธ์ ๊ฐ ์ํค๋ ๋๋ก! |
"๋ฌธ์ ๊ฐ ๋ญ ์ํ๋์ง ์ ํํ ํ์ ํ๋ฉด, ์ฟผ๋ฆฌ๋ ์ ์ ๋ก ๋์จ๋ค!" ๐ฅ
