GROUP BY HAVING

์ด๋ฏผ๊ฒฝยท2024๋…„ 3์›” 4์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
1/8

๐Ÿ’ก SELECT ๋ฌธ ํ•ด์„ ์ˆœ์„œ

  • ํ•ด์„5: SELECT ์ปฌ๋Ÿผ๋ช… AS ๋ณ„์นญ, ๊ณ„์‚ฐ์‹, ํ•จ์ˆ˜์‹
  • ํ•ด์„1: FROM ํ…Œ์ด๋ธ”๋ช…
    ํ•ด์„2: WHERE ์ปฌ๋Ÿผ๋ช… | ํ•จ์ˆ˜์‹ ๋น„๊ต์—ฐ์‚ฐ์ž ๋น„๊ต๊ฐ’
    ํ•ด์„3: GROUP BY ๊ทธ๋ฃน์„ ๋ฌถ์„ ์ปฌ๋Ÿผ๋ช…
  • ํ•ด์„4: HAVING ๊ทธ๋ฃนํ•จ์ˆ˜์‹ ๋น„๊ต์—ฐ์‚ฐ์ž ๋น„๊ต๊ฐ’
  • ํ•ด์„6: ORDER BY ์ปฌ๋Ÿผ๋ช… | ๋ณ„์นญ | ์ปฌ๋Ÿผ์ˆœ๋ฒˆ ์ •๋ ฌ๋ฐฉ์‹(ASC/DESC) [NULLS FIRST | LAST]
โ” NULLS FIRST | LAST 
NULL ๊ฐ’์ด ์•ž์— ๋‚˜์˜ค๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๋’ค์— ๋‚˜์˜ค๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋œป ํ•จ.

โ” GROUP BY ์ ˆ

: ๊ฐ™์€ ๊ฐ’๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ ๊ธฐ๋ก๋œ ์ปฌ๋Ÿผ์„ ๊ฐ€์ง€๊ณ  ๊ฐ™์€ ๊ฐ’๋“ค์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์Œ

GROUP  BY ์ปฌ๋Ÿผ๋ช… | ํ•จ์ˆ˜์‹, ...
  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ๋ฌถ์—์„œ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•จ.
  • ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์€ ๊ฐ’์— ๋Œ€ํ•ด์„œ SELECT์ ˆ์—์„œ ๊ทธ๋ฃนํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•จ.
  • ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” ๋‹จ ํ•œ๊ฐœ์˜ ๊ฒฐ๊ณผ ๊ฐ’๋งŒ ์‚ฐ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์‚ฐ์ถœํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฃนํ•จ์ˆ˜๊ฐ€ ์ ์šฉ๋œ ๊ธฐ๋ถ„์„ ORDER BY์ ˆ์— ๊ธฐ์ˆ ํ•˜์—ฌ ์‚ฌ์šฉ
[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ์ฝ”๋“œ, ๋ถ€์„œ๋ณ„ ๊ธ‰์—ฌ ํ•ฉ ์กฐํšŒ]
--1) ๋ถ€์„œ์ฝ”๋“œ๋งŒ ์กฐํšŒ
SELECT DEPT_CODE FROM EMPLOYEE; --23ํ–‰
--2) ์ „์ฒด ๊ธ‰์—ฌ ํ•ฉ ์กฐํšŒ
SELECT SUM(SALARY) FROM EMPLOYEE; --1ํ–‰
SELECT DEPT_CODE, SUM(SALARY)
FROM EMPLOYEE;
-- ์˜ค๋ฅ˜ ๋ฐœ์ƒ ORA-00937: ๋‹จ์ผ ๊ทธ๋ฃน์˜ ๊ทธ๋ฃน ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค
--์˜ค๋ฅ˜ ๋ฐœ์ƒํ•œ ์œ„ ๋‚ด์šฉ ์•Œ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๊ธฐ!
SELECT DEPT_CODE, SUM(SALARY)
FROM EMPLOYEE
GROUP BY DEPT_CODE; --> DEPT_CODE๊ฐ€ ๊ฐ™์€ ํ–‰๋ผ๋ฆฌ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์ด ๋จ.

[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ์ง๊ธ‰์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ์‚ฌ๋žŒ์˜ ์ง๊ธ‰์ฝ”๋“œ, ๊ธ‰์—ฌํ‰๊ท , ์ธ์›์ˆ˜๋ฅผ ์ง๊ธ‰์ฝ”๋“œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์กฐํšŒ]
SELECT JOB_CODE, ROUND(AVG(SALARY)),COUNT(*)
FROM EMPLOYEE
GROUP BY JOB_CODE
ORDER BY JOB_CODE ;
[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ์„ฑ๋ณ„(๋‚จ/์—ฌ)๊ณผ ๊ฐ ์„ฑ๋ณ„ ๋ณ„ ์ธ์› ์ˆ˜, ๊ธ‰์—ฌ ํ•ฉ์„ ์ธ์› ์ˆ˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์กฐํšŒ]
SELECT DECODE(SUBSTR(EMP_NO,8,1),'1', '๋‚จ', '2','์—ฌ') ์„ฑ๋ณ„ ,
				COUNT(*) "์ธ์› ์ˆ˜" , SUM(SALARY) "๊ธ‰์—ฌ ํ•ฉ"  
FROM EMPLOYEE
GROUP BY DECODE(SUBSTR(EMP_NO,8,1),'1', '๋‚จ', '2','์—ฌ') 
					--> ๋ณ„์นญ์‚ฌ์šฉ์ด ์•ˆ๋œ๋‹ค! ๋ณ„์นญ ๋˜๋Š” ์ปฌ๋Ÿผ์ˆœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉดX SELECT์ ˆ์„ ํ•ด์„ํ•˜๊ธฐ ์ „์ด๊ธฐ ๋•Œ๋ฌธ
ORDER BY "์ธ์› ์ˆ˜" ; --> ํ•ด์„์ˆœ์„œ๋กœ ์ธํ•ด ๋ณ„์นญ ์‚ฌ์šฉO

๐Ÿ“– WHERE์ ˆ GROUP BY ์ ˆ์„ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ

[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ์ฝ”๋“œ๊ฐ€ D5, D6์ธ ๋ถ€์„œ์˜ ํ‰๊ท  ๊ธ‰์—ฌ, ์ธ์› ์ˆ˜ ์กฐํšŒ]
SELECT DEPT_CODE, ROUND(AVG(SALARY)), COUNT(*)
FROM EMPLOYEE
WHERE DEPT_CODE IN('D5','D6')
GROUP BY DEPT_CODE ;
[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ์ง๊ธ‰๋ณ„ 2000๋…„๋„ ์ดํ›„ (2000๋…„ ํฌํ•จ) ์ž…์‚ฌ์ž๋“ค์˜ ๊ธ‰์—ฌ ํ•ฉ์„ ์กฐํšŒ (์ง๊ธ‰์ฝ”๋“œ ์˜ค๋ฆ„์ฐจ์ˆœ)]
SELECT JOB_CODE , SUM(SALARY) 
FROM EMPLOYEE
๋ฐฉ๋ฒ• 1 - WHERE HIRE_DATE >= TO_DATE('2000-01-01') 
๋ฐฉ๋ฒ• 2 - WHERE EXTRACT (YEAR FROM HIRE_DATE) >= 2000
๋ฐฉ๋ฒ• 3 - WHERE SUBSTR(TO_CHAR(HIRE_DATE, 'YYYY'),1,4) >= '2000'
GROUP BY JOB_CODE
ORDER BY 1;

GROUP BY์ ˆ์€ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์„ ๋ฌถ์–ด์„œ ๊ทธ๋ฃน์œผ๋กœ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ๊ทธ๋ฃน ๋‚ด ๊ทธ๋ฃน์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ!
ํ•˜์ง€๋งŒ ์ฃผ์˜์‚ฌํ•ญ์ด ์žˆ๋‹ค..!

โ— GROUP BY ์‚ฌ์šฉ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ
SELECT ๋ฌธ์— GROUP BY ์ ˆ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, SELECT ์ ˆ์— ๋ช…์‹œํ•œ ์กฐํšŒํ•˜๋ ค๋Š” ์ปฌ๋Ÿผ ์ค‘ ๊ทธ๋ฃน ํ•จ์ˆ˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ์„ ๋ชจ๋‘ GROUP BY ์ ˆ์— ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค ๐Ÿ‘€

 [EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ณ„๋กœ ๊ฐ™์€ ์ง๊ธ‰์ธ ์‚ฌ์›์˜ ์ˆ˜๋ฅผ ์กฐํšŒ/ ๋ถ€์„œ์ฝ”๋“œ ์˜ค๋ฆ„์ฐจ์ˆœ, ์ง๊ธ‰์ฝ”๋“œ ๋‚ด๋ฆผ์ฐจ์ˆœ]
SELECT DEPT_CODE, JOB_CODE, COUNT(*)
FROM EMPLOYEE
GROUP BY DEPT_CODE , JOB_CODE 
โžกDEPT_CODE๋กœ ๊ทธ๋ฃน์„ ๋‚˜๋ˆ„๊ณ , ๋‚˜๋ˆ ์ง„ ๊ทธ๋ฃน๋‚ด์—์„œ JOB_CODE๋กœ ๋˜ ๊ทธ๋ฃน์„ ๋ถ„๋ฅ˜(=>์„ธ๋ถ„ํ™”)
ORDER BY DEPT_CODE, JOB_CODE DESC;
โžก GROUP BY ํ‘œํ˜„์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.

๐Ÿ“– HAVING ์ ˆ

: ๊ทธ๋ฃนํ•จ์ˆ˜๋กœ ๊ตฌํ•ด ์˜ฌ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉ

HAVING ์ปฌ๋Ÿผ๋ช… | ํ•จ์ˆ˜์‹ ๋น„๊ต์—ฐ์‚ฐ์ž ๋น„๊ต๊ฐ’
[๋ถ€์„œ๋ณ„ ํ‰๊ท  ๊ธ‰์—ฌ๊ฐ€ 3๋ฐฑ๋งŒ์› ์ด์ƒ์ธ ๋ถ€์„œ๋ฅผ ์กฐํšŒ(๋ถ€์„œ์ฝ”๋“œ ์˜ค๋ฆ„์ฐจ์ˆœ)]
SELECT DEPT_CODE , ROUND(AVG(SALARY))
FROM EMPLOYEE
-- WHERE AVG(SALARY) >= 3000000 
โžก ํ•œ์‚ฌ๋žŒ์˜ ๊ธ‰์—ฌ๊ฐ€ 3๋ฐฑ๋งŒ ์ด์ƒ์ด๋ผ๋Š” ์กฐ๊ฑด์ด๊ธฐ์— ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑX/๋ถ€์„œ๋ณ„ ํ‰๊ท ๊ธ‰์—ฌ๋กœ ๊ตฌํ•ด์•ผํ•จ! 
โžก WHERE ์ ˆ์€ ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜ํ•˜๋‚˜์˜ ์กฐ๊ฑด์„ ๊ตฌํ•˜๋Š” ๊ฒƒ !
GROUP BY DEPT_CODE
HAVING AVG(SALARY) >=3000000 
โžกDEPT_CODE ๊ทธ๋ฃน ์ค‘ ๊ธ‰์—ฌ ํ‰๊ท ์ด 3๋ฐฑ๋งŒ ์ด์ƒ์ธ ๊ทธ๋ฃน๋งŒ ์กฐํšŒ
โžก HAVING์€ ํ…Œ์ด๋ธ”์˜ ๊ทธ๋ฃน์˜ ์กฐ๊ฑด์„ ๊ตฌํ•˜๋Š” ๊ฒƒ!(๋ฐ˜๋“œ์‹œ ๊ทธ๋ฃนํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค)
ORDER BY DEPT_CODE ;
[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ์ง๊ธ‰๋ณ„ ์ธ์›์ˆ˜๊ฐ€ 5๋ช… ์ดํ•˜์ธ ์ง๊ธ‰์ฝ”๋“œ, ์ธ์›์ˆ˜ ์กฐํšŒ(์ง๊ธ‰์ฝ”๋“œ ์˜ค๋ฆ„์ฐจ์ˆœ)]
SELECT JOB_CODE, COUNT(*)
FROM EMPLOYEE
GROUP BY JOB_CODE
HAVING COUNT(*)<=5 โžก HAVING ์ ˆ์—์„œ๋Š” ๊ทธ๋ฃน ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑ๋œ๋‹ค!!!
ORDER BY 1;

๐Ÿ“– ์ง‘๊ณ„ ํ•จ์ˆ˜(ROLLUP, CUBE)

: ๊ทธ๋ฃน ๋ณ„ ์‚ฐ์ถœ ๊ฒฐ๊ณผ ๊ฐ’์˜ ์ง‘๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜ (๊ทธ๋ฃน๋ณ„๋กœ ์ค‘๊ฐ„ ์ง‘๊ณ„ ๊ฒฐ๊ณผ๋ฅผ ์ถ”๊ฐ€)
โžก GROUP BY ์ ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜!

  • ROLLUP : GROUUP BY ์ ˆ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ž‘์„ฑ๋œ ์ปฌ๋Ÿผ์˜ ์ค‘๊ฐ„ ์ง‘๊ฒŒ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜
SELECT DEPT_CODE, JOB_CODE, COUNT(*)
FROM EMPLOYEE
GROUP BY ROLLUP(DEPT_CODE , JOB_CODE)
ORDER BY 1;
  • CUBE : GROUP BY ์ ˆ์— ์ž‘์„ฑ๋œ ๋ชจ๋“  ์ปฌ๋Ÿผ์˜ ์ค‘๊ฐ„ ์ง‘๊ณ„๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜
SELECT DEPT_CODE, JOB_CODE, COUNT(*)
FROM EMPLOYEE
GROUP BY CUBE(DEPT_CODE , JOB_CODE)
ORDER BY 1;

๐Ÿ“– SET OPERATOR (์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž)

: ์—ฌ๋Ÿฌ SELECT์˜ ๊ฒฐ๊ณผ(RESULT SET)๋ฅผ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋กœ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ์ž

  • UNION (ํ•ฉ์ง‘ํ•ฉ) : ๋‘ SELECT ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์นจ (๋‹จ, ์ค‘๋ณต์€ ํ•œ๋ฒˆ๋งŒ ์ž‘์„ฑ)
  • INTERECT (๊ต์ง‘ํ•ฉ) : ๋‘ SELECT ๊ฒฐ๊ณผ ์ค‘ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„๋งŒ ์กฐํšŒ
  • UNION ALL : UNION + INTERSECT ํ•ฉ์ง‘ํ•ฉ์—์„œ ์ค‘๋ณต ๋ถ€๋ถ„ ์ œ๊ฑฐ X
  • MINUS (์ฐจ์ง‘ํ•ฉ) : A ์—์„œ A, B ๊ต์ง‘ํ•ฉ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  ์กฐํšŒ
[EMPLOYEE ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ์ฝ”๋“œ๊ฐ€ 'D5' ์ธ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๋ถ€์„œ์ฝ”๋“œ, ๊ธ‰์—ฌ]
SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5';
[๊ธ‰์—ฌ๊ฐ€ 300๋งŒ ์ดˆ๊ณผ์ธ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๋ถ€์„œ์ฝ”๋“œ, ๊ธ‰์—ฌ]
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;

โžก ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘๊ฐ€์ง€์˜ ๋‚ด์šฉ์„ ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋ณด๊ธฐ!!

1. UNION
SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5'
UNION 
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
โžก์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ๋˜๊ณ  ํ•ฉ์นœ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ํ•œ๋ฒˆ๋งŒ ์ž‘์„ฑ๋œ๋‹ค (์‹ฌ๋ด‰์„ , ๋Œ€๋ถํ˜ผ์ด ์ค‘๋ณต๋˜์–ด ํ•œ๋ฒˆ๋งŒ ๋‚˜์˜ด)

2. INTERSECT
SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5'
INTERSECT 
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
โžก์ค‘๋ณต๋˜๋Š” ์‚ฌ๋žŒ๋งŒ ๋‚˜์˜ด (์‹ฌ๋ด‰์„ , ๋Œ€๋ถํ˜ผ๋งŒ ๋‚˜์˜ด)

3. UNION ALL
SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5'
UNION ALL
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
โžก ํ•ฉ์ง‘ํ•ฉ์—์„œ ์ค‘๋ณต์ œ๊ฑฐ ์•ˆํ•˜๊ณ  ๋‚˜์˜ค๋Š” ๊ฒƒ (์‹ฌ๋ด‰์„ , ๋Œ€๋ถํ˜ผ ๋‘๋ฒˆ์”ฉ ๋‚˜์˜ด)

4. MINUS
SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5'
MINUS
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
โžก A(์•ž์— ์ ์€ ๊ฒƒ)๋ž‘ B(๋’ค์— ์ ์€ ๊ฒƒ)์˜ ๊ต์ง‘ํ•ฉ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ๋‚˜์˜ด (์‹ฌ๋ด‰์„ , ๋Œ€๋ถํ˜ผ ๋นผ๊ณ  ๋‚˜์˜ด)

โ—โ— ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

์กฐํšŒํ•˜๋Š” ์ปฌ๋Ÿผ์˜ ํƒ€์ž…(๋ฌธ์ž-๋ฌธ์ž/ ์ˆซ์ž-์ˆซ์ž ๋“ฑ), ๊ฐœ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค!! ๐Ÿ‘€

SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY 
FROM EMPLOYEE
WHERE DEPT_CODE  = 'D5'
UNION 
SELECT  EMP_ID , EMP_NAME , DEPT_CODE ,1
FROM EMPLOYEE
WHERE SALARY > 3000000;
ํ…Œ์ด๋ธ”์ด ๋‹ฌ๋ผ๋„ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ดœ์ฐฎ์Œ!
โžก ์ฆ‰, ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์ด์ง€๋งŒ ์ปฌ๋Ÿผ์˜ ํƒ€์ž…, ๊ฐœ์ˆ˜๋งŒ ์ผ์น˜ํ•˜๋ฉด ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅ!
SELECT EMP_ID , EMP_NAME FROM EMPLOYEE
UNION 
SELECT DEPT_ID, DEPT_TITLE FROM DEPARTMENT;
profile
ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€