0% found this document useful (0 votes)
16 views4 pages

correction-TP BDA

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

correction-TP BDA

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

1/---------------------------------

select E.first_name, M.first_name, D.department_name


from employees E, employees M, departments D
where E.manager_id = M.employee_id(+)
and E.department_id = D.department_id(+);

select E.first_name, M.first_name, D.department_name


from employees E left join employees M
on E.manager_id = M.employee_id
left join departments D
on E.department_id = D.department_id;

select E.first_name, (select M.first_name


from employees M
where E.manager_id = M.employee_id) first_name,
(select D.department_name
from departments D
where E.department_id = D.department_id) department_name
from employees E;

2/---------------------------------
select d.department_id, department_name,
count(e.employee_id) nb_emp
from departments d, employees e
where d.department_id = e.department_id(+)
group by d.department_id, department_name;

select d.department_id, department_name,


count(e.employee_id) nb_emp
from departments d left join employees e
on d.department_id = e.department_id
group by d.department_id, department_name;

select department_id, department_name,


(select count(*) from employees e
where d.department_id = e.department_id) nb_emp
from departments d;

3/---------------------------------
select department_id, sum(salary) Som_sal,
dense_rank() over(order by sum(salary) desc) "R/Som_Sal"
from employees
group by department_id;

select d.department_id, department_name, sum(salary) Som_sal,


dense_rank() over(order by sum(salary) desc) "R/Som_Sal"
from departments d
join employees e
on d.department_id = e.department_id
group by d.department_id, department_name;

select d.department_id, department_name, sum(salary) Som_sal,


dense_rank() over(order by sum(salary) desc) "R/Som_Sal"
from departments d
left join employees e
on d.department_id = e.department_id
group by d.department_id, department_name;

select d.department_id, department_name, sum(salary) Som_sal,


dense_rank() over(order by sum(salary) desc) "R/Som_Sal"
from departments d
right join employees e
on d.department_id = e.department_id
group by d.department_id, department_name;

select d.department_id, department_name, sum(salary) Som_sal,


dense_rank() over(order by sum(salary) desc) "R/Som_Sal"
from departments d
full join employees e
on d.department_id = e.department_id
group by d.department_id, department_name;

4-----------------------------------------------------------
select sum(salary)
from employees; => 1

select department_id, sum(salary)


from employees
group by department_id; => 12

select department_id, manager_id, job_id, sum(salary)


from employees
group by department_id, manager_id, job_id; =>33

select department_id, manager_id, job_id, sum(salary)


from employees
group by rollup(department_id, (manager_id, job_id)); =>46

column department_id format A10


column manager_id format A10
column job_id format A10

select nvl(decode(grouping(department_id),1,'ALL', department_id),'NULL')


department_id,
nvl(decode(grouping(manager_id),1,'ALL', manager_id),'NULL') manager_id,
nvl(decode(grouping(job_id),1,'ALL', job_id),'NULL') job_id,
sum(salary)
from employees
group by rollup(department_id,(manager_id, job_id));

clear column

5------------------------------------------------------------

select department_id, manager_id, job_id, sum(salary)


from employees
group by department_id, cube(manager_id, job_id);
6-------------------------------------------------------------
select employee_id, department_id, salary from employees E1
where salary > (select avg(salary) from employees E2
where E2.department_id = E1.department_id );

with req as
(select department_id, avg(salary) moy_sal
from employees
group by department_id)
select employee_id, e.department_id, salary, moy_sal
from employees e, req
where e.department_id = req.department_id
and salary > moy_sal;

7---------------------------------------------------------------
select department_name, count(employee_id)
from departments D, employees E
where D.department_id = E.department_id(+)
group by department_name;

select department_name, count(employee_id)


from departments D left join employees E
on D.department_id = E.department_id
group by department_name;

select department_name,(select count(*) from employees E


where D.department_id = E.department_id) NB_EMP
from departments D;

8---------------------------------------------------------------

select department_id, department_name


from departments
where department_id not in (select department_id
from employees
where department_id is not null);

select department_id, department_name


from departments d
where not exists (select *
from employees
where d.department_id = department_id);

select d.department_id, department_name


from departments d , employees e
where d.department_id = e.department_id(+)
and e.employee_id is null;

select d.department_id, department_name


from departments d left join employees e
on d.department_id = e.department_id
where e.employee_id is null;
9-------------------------------------------------------------

select employee_id, first_name


from employees
where employee_id not in (select distinct MANAGER_ID from employees
where MANAGER_ID is not null);

select employee_id, first_name


from employees e
where not exists (select * from employees i
where e.employee_id = i.manager_id);

select employee_id, first_name


from employees e
where (select count(*) from employees i
where e.employee_id = i.manager_id) = 0;

select distinct m.employee_id, m.first_name


from employees m, employees e
where m.employee_id = e.manager_id(+)
and e.employee_id is null;

select m.employee_id, m.first_name


from employees m left join employees s
on m.employee_id = s.manager_id
where s.employee_id is null;

You might also like