๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„ค๊ณ„

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„ค๊ณ„] 3-10 from ์ ˆ์˜ sub์ฟผ๋ฆฌ

by ์ ผ์ ผ39 2025. 2. 15.
from ์ ˆ์˜ sub์ฟผ๋ฆฌ From ์ ˆ ์•ˆ์˜ SFW
  - ์›๋ž˜ from์ ˆ์—๋Š” ํ…Œ์ด๋ธ”์„ ์ค˜์•ผํ•˜๋Š”๋ฐ, ๊ทธ ์ž๋ฆฌ์— SFW์˜ ์ž„์‹œํ…Œ์ด๋ธ” ์คŒ์–ด์ฐจํ”ผ ํ…Œ์ด๋ธ”์ด๊ธด ํ•จ
  - ์ด ์•ˆ์— ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์ฃผ๋ฉด, ๊ทธ ๋ณ€ํ˜•๋œ ํ…Œ์ด๋ธ”์—์„œ ๋ฝ‘๊ฒŒ ๋จ.
  - ์ž„์‹œํ…Œ์ด๋ธ” -> DB์— ์ €์žฅ๋˜์ง€ ์•Š์•„์„œ, ์งˆ์˜ ์ฒ˜๋ฆฌ ํ›„ ์‚ฌ๋ผ์ง„๋‹ค. Base ํ…Œ์ด๋ธ”๊ณผ ๋‹ค๋ฅด๋‹ค
  - having ์ ˆ์„ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค
 
  - ์„œ๋ธŒ์ฟผ๋ฆฌ ์•ˆ์˜ select์—์„œ ์ปฌ๋Ÿผ์„ as๋กœ ๊ฐœ๋ช…ํ•ด๋„ ๋˜๊ณ , ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ฐ–์— as ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋“ค ๋‚˜์—ด)
 
Q)find average instructors’ salaries of those departments where average salary is greater than
      $42,000
                                                                                           (find dept_name and avg_salary)
=> select dept_name, avg_salary
     from ( select dept_name, avg(salary) as avg_salary
.              from instructor
.              where TRUE
.              group by dept_name )
     where avg_salary > 42,000 ;

=> select dept_name, avg_salary
     from ( select dept_name, avg(salary)
                from instructor
                group by dept_name )
.                      as dept_avg( dept_name, avg_salary )        // ํ…Œ์ด๋ธ”๋ช… ( ์ฒซ๋ฒˆ์งธ์ปฌ๋Ÿผ, ๋‘๋ฒˆ์งธ์ปฌ๋Ÿผ)
     where avg_salary > 42,000 ;
 
(์œ„๋Š” ๊ฐœ๋ช…์„ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ฐ–์—์„œ ํ•จ)