select department_id, round(avg(SALARY), 2) sal, round(sum(SALARY), 2), count(*) as c from employees
group by department_id)
having avg(SALARY)>8000 -- NACHTTEIL!!! in der having clause kann man nicht auf Synonyme zugreifen
order by sal;
select * from (
select department_id, round(avg(SALARY), 2) sal, round(sum(SALARY), 2), count(*) as c from employees
group by department_id)
where sal>8000
order by sal;
-- alles auf einmal
select first_name, last_name, salary, davgs.department_id, avgs from
employees e, (select department_id, avg(salary) avgs from employees
group by department_id) davgs
where davgs.department_id = e.department_id
and salary > avgs
-- zuerst table anlegen
create table avg_salaray as select department_id, avg(salary) avgs from employees
group by department_id
-- nun ganz "normal" joinen
select first_name, last_name, salary, e.department_id, avgs from
employees e, avg_salaray
where salary > avgs
and avg_salaray.department_id = e.department_id
zusatzaufgabe diejenige mit der größten differenz per Department herausfinden!