Вы находитесь на странице: 1из 3

lab 4

ex 3
select min_salary "salariu min",max_salary "salariu max", max_salary+min_salary
"Suma",(max_salary+min_salary)/2 "media"
from jobs;

ex 4
select job_id, count(employee_id)
from employees
group by job_id;

ex 5
select count( distinct manager_id) "Nr.Manageri"
from employees

ex 6
select max(max_salary)- min(min_salary) "diferenta"
from jobs;

ex 7
select department_name,location_id, count(employee_id) "nr angajati"
from departments d,employees e
where d.department_id=e.department_id
group by d.department_name,d.location_id

ex 8
select employee_id, last_name,avg(salary)
from employees
where salary>(select avg(salary)
from employees)
group by employee_id, last_name
order by avg(salary) desc

ex 9
select manager_id,min(salary)
from employees
where manager_id is not null
having min(salary)>1000
group by manager_id

ex 10
select d.department_id, d.department_name,max(e.salary) "salariu maxim"
from departments d join employees e on (d.department_id=e.department_id)
join jobs j on (e.job_id=j.job_id)
where j.max_salary>3000
group by d.department_id, d.department_name;

ex 11
select min((max_salary+min_salary)/2)
from jobs;

select min(avg(salary))
from employees
group by manager_id;
//11
ex12
select d.department_id, d.department_name, sum(e.salary) "Suma"
from departments d join employees e on (e.department_id=d.department_id)
where d.department_id=e.department_id
group by d.department_id, d.department_name;

ex 13
select d.department_id, d.department_name, max(e.salary) "MAX"
from departments d join employees e on (e.department_id=d.department_id)
where d.department_id=e.department_id
group by d.department_id, d.department_name;
//ignora valorile null, dar nu pot gasi o solutie care sa imi rezolve problema

ex 14
select job_id,job_title, (min_salary+max_salary)/2
from jobs
where (min_salary+max_salary)/2=(select min((min_salary+max_salary)/2)
from jobs)

select job_id,job_title,avg(salary)
from employees e join jobs j using (job_id)
having avg(salary)=(select min(avg(salary))
from employees
group by job_id)
group by job_id,job_title;
//prof

ex 15
select avg(salary)
from employees
having avg(salary)>2500
ex 16
select department_id,job_id,sum(salary)
from employees
group by department_id,job_id;
ex 17
select department_id,department_name, min(salary)
from departments join employees using (department_id)
having avg(salary)=(select max(avg(salary))
from employees
group by department_id)
group by department_id,department_name;

ex 18(a)
select department_id, department_name, count(employee_id)
from employees full outer join departments using (department_id)
having count(employee_id)<4
group by department_id,department_name;

ex 19
select department_id, department_name, count(employee_id)
from employees right outer join departments using (department_id)
having count(employee_id)<4
group by department_id,department_name;
ex 20
select count(count(d.department_name))
from departments d join employees e on (e.department_id=d.department_id)
where d.department_id=e.department_id
having count(e.employee_id)>=15
group by d.department_name

lab 10
select count(*)
from employees
where manager_id is not null
group by manager_id

//ptr fct de functii avem nevoie de group by (din prima fct)


//fct de fct fara alte coloane
//e doar ptr select

PROF :pb 19!!


PB 21//23 HAVING ()

ex 23
select city, department_id, department_name,job_id, sum(salary)
from employees right join departments using(department_id)
left join locations using(location_id)
where department_id>80
group by city, department_id,department_name, job_id

Вам также может понравиться