ํ๋์ ์ฟผ๋ฆฌ ์์ ํฌํจ๋ ๋ ํ๋์ ์ฟผ๋ฆฌ
๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ ์ข
์์ ์ธ ๊ด๊ณ์ด๋ค.
SELECT *
FROM employee
WHERE salary >
(SELECT salary FROM employee WHERE name = 'elice');
์ฌ์ elice์ salary๋ฅผ ์์ง ๋ชปํด๋ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค.
๊ฒฐ๊ณผ๊ฐ ํ ํ๋ง ๋์ค๋ ์๋ธ์ฟผ๋ฆฌ๋ก, ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ 1๊ฐ์ ๊ฐ๋ง ๋ฐํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌํ๋ ์ฟผ๋ฆฌ
SELECT * FROM employee
WHERE salary
(SELECT salary FROM employee WHERE ์ฌ์๋ฒํธ = 1);
์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ 2๊ฐ ์ด์ ๋ฐํํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌํ๋ ์ฟผ๋ฆฌ
SELECT *
FROM employee
WHERE salary IN
(SELECT MAX(salary) FROM employee GROUP BY deptno);
IN ๋ค์ค ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
๊ธฐํธ | ๋ป |
---|---|
IN | ํ๋๋ผ๋ ๋ง์กฑํ๋ฉด ๋ฐํ |
ANY | ํ๋๋ผ๋ ๋ง์กฑํ๋ฉด ๋ฐํ, ๋น๊ต ์ฐ์ฐ ๊ฐ๋ฅ |
ALL | ๋ชจ๋ ๋ง์กฑํ๋ฉด ๋ฐํ, ๋น๊ต ์ฐ์ฐ ๊ฐ๋ฅ |
1 in (1,2,3,4) = ์ฐธ
10 < any (1,2,3,4) = ์ต๋๊ฐ ์ฐพ๊ธฐ : 4 => ๊ฑฐ์ง
99 >= all (99,100,101) ์ต๋๊ฐ ์ฐพ๊ธฐ : 101 => ๊ฑฐ์ง
SELECT(์ฟผ๋ฆฌ์ ๋จธ๋ฆฌ๋ถ๋ถ)์ ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ, ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ ์ค๋ก์ง ํ ํ๋ง ๋ฐํํ๋ฉฐ ๋ง์น JOIN์ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ๋ค.
์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฐ๋ ์ด์ : ์ ์ ๋ฐ์ดํฐ๋ผ๋ฉด JOIN ์ฐ์ฐ๊ณผ ํฐ ์ฐจ์ด๊ฐ ์์ ์ ์์ง๋ง, ๋ฐ์ดํฐ์ ๊ท๋ชจ๊ฐ ํด ๊ฒฝ์ฐ, ๊ณ์ฐ ์๋๊ฐ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค.
SELELCT student.name, (
SELECT math
FROM middle_test as m
WHERE m.student_id = student.student_id
) AS middle_avg
FROM students;