๐ฆ ๋ฐ์ดํฐ ๋ฒ ์ด์ค (DB) ๐ฆ34 ๋ถ์ํจ์, ์์ํจ์ (RANK, DENSE_RANK, ROW_NUMBER, ROWNUM) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667-- ๋ถ์ ํจ์/*์์ํจ์RANK 1 2 3 3 5 6 DENSE_RANK() 1 2 3 3 4 5ROW_NUMBER() 1 2 3 4 5 6 ROWNUMํ์ํ ์ด์ : ์์๋ฅผ ๋ฒํธ๋ก ์ค์ ํ๊ธฐ์ํด*/ SELECT employee_id, first_nameFROM employeesWHERE employee_id >= 100 AND employee_id 2021. 2. 15. OVER, PARTITION BY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 --OVER() ํจ์ --select์ ์์๋ง ์ฌ์ฉ --GROUP BY ๋ฅผ ๋ณด๊ฐํ๊ธฐ ์ํด ๋์จ ํจ์ --select ์ ์์ GROUP์ ๋ง๋ค์ง ์๊ณ ์ฌ์ฉ๊ฐ๋ฅ SELECT count(*), department_id --์๋ฌ FROM employees; SELECT count(*), department_id --์๋ฌ FROM employees GROUP BY department_id; SELECT department_id, COUNT(*)OVER() --์๋ฌ FROM employees; SELECT first_name, department_id, COUNT.. 2021. 2. 15. ์งํฉ (UNION, INTERSECT, MINUS) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 /* ์งํฉ ํฉ์งํฉ: UNION - FULLOUTER ๊ต์งํฉ: INTERSECT - INNER ์ฐจ์งํฉ: MINUS */ --UNION SELECT job_id FROM employees WHERE job_id IN('AD_VP', 'FI_ACCOUNT') UNION ALL SELECT job_id FROM jobs WHERE job_id IN('AD_VP', 'FI_ACCOUNT'); --INTERSECT --๋งค๋์ ์ ๋ํ ์ ๋ณด๋ง ์ถ๋ฆฐ๋ค(๊ต์งํฉ์ผ๋ก) --sorting ์ด ์๋์ ์ผ๋ก ๋๋ค -- ์ค.. 2021. 2. 15. ์๋ธ ์ฟผ๋ฆฌ SUB QUERY ์๋ธ ์ฟผ๋ฆฌ(Sub Query) ์ถ๊ฐ์ ๋ณด๋ฅผ ์ ๊ณตํ ๋ชฉ์ ์ผ๋ก ํ๋์ SQL ๋ฌธ์ฅ ๋ด๋ถ์ ์กด์ฌํ๋ SELECT ๋ฌธ์ฅ์ ๋งํ๋ค. DML์ ์ํ๋ ๋ชจ๋ ๋ฌธ์ฅ์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์๋ธ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ฅ์์ ๋ฆฌ์คํธ๋ก ์ฌ ์ ์๋ค. ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ์ ์์ผํ๋ค. Order by๋ฅผ ์ฌ์ฉํ ์ ์๋ค. SELECT ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ FROM ์ธ๋ผ์ธ ๋ทฐ WHERE ์ค์ฒฉ ์๋ธ์ฟผ๋ฆฌ ์ค์ฒฉ ์๋ธ์ฟผ๋ฆฌ( Nested Subquery ) - WHERE ๋ฌธ์ ๋ํ๋๋ ์๋ธ์ฟผ๋ฆฌ 1.๋จ์ผ ํ 2.๋ณต์(๋ค์ค) ํ 3.๋ค์ค ์ปฌ๋ผ ์ธ๋ผ์ธ ๋ทฐ(Inline View) - FROM ๋ฌธ์ ๋ํ๋๋ ์๋ธ์ฟผ๋ฆฌ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ( Scalar Subquery ) - SELECT ๋ฌธ์ ๋ํ๋๋ ์๋ธ์ฟผ๋ฆฌ ์คํ ์์ ์๋ธ์ฟผ๋ฆฌ ์คํ -> ๋ฉ์ธ(๋ถ๋ชจ) ์ฟผ๋ฆฌ .. 2021. 2. 15. ์ด์ 1 2 3 4 5 6 7 8 9 ๋ค์