[과목 2] 제 1장 SQL 기본 #13
-
|
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
select *
from (select DEPARTMENT.id, DEPARTMENT_NAME, avg(SALARY)
from DEPARTMENT
join EMPLOYEE E on DEPARTMENT.ID = E.DEPARTMENT_ID
group by DEPARTMENT.ID, DEPARTMENT_NAME
having avg(SALARY) > 50000
order by avg(SALARY) desc)
where ROWNUM <= 3; |
Beta Was this translation helpful? Give feedback.
-
use admin;
go;
select top 3 A.department_name, avg(B.salary)
from department A
inner join employee B
on A.id = B.department_id
where avg(B.salary) > 50000
group by A.department_name, B.salary
order by avg(B.salary); |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
SELECT department_name,
avg_salary
FROM (SELECT d.department_name,
AVG(e.salary) AS avg_salary,
ROW_NUMBER() OVER (ORDER BY AVG(e.salary) DESC) AS row_num
FROM employee e
JOIN department d ON e.department_id = d.id
GROUP BY d.department_name
HAVING AVG(e.salary) > 50000)
WHERE row_num <= 3; |
Beta Was this translation helpful? Give feedback.
① WHERE 절은 행을 필터링하는 데 사용되고, HAVING 절은 열을 필터링하는 데 사용된다.
② HAVING 절은 행을 필터링하는 데 사용되고, WHERE 절은 열을 필터링하는 데 사용된다.
③ WHERE 절은 GROUP BY 절 이전에 행을 필터링하는 데 사용되고, HAVING 절은 GROUP BY 절 이후에 집계된 결과를 필터링하는 데 사용된다.
④ HAVING 절은 GROUP BY 절 이전에 행을 필터링하는 데 사용되고, WHERE 절은 GROUP BY 절 이후에 집계된 결과를 필터링하는 데 사용된다.
① 두 개 이상의 테이블을 기반으로 새로운 테이블을 생성한다.
② 한 테이블의 행을 필터링하는 데 사용된다.
③ 두 개 이상의 테이블을 기반으로 한 테이블에서 관련 열을 결합하여 쿼리 결과를 생성한다.
④ 두 개 이상의 테이블에서 공통 열을 제거한다.
ADMIN.EMPLOYEE테이블과ADMIN.DEPARTMENT테이블을 참고하여 아래 제시된 문제에 대한 SQL 및 쿼리결과를 작성시오.