1.
Afişaţi data curentă sub forma “Numele zilei, zz NumeLuna aaaa” (Ex: Marti, 22
Martie 2016).
select to_char(sysdate, 'Day, dd Month yyyy')
From dual
2. Afişaţi data ultimei angajări, salariul minim şi salariul maxim pentru fiecare
departament.
select max(HIRE_DATE), min (salary) , max (salary)
from employees
group by DEPARTMENT_ID;
3. Afişaţi numărul de departamente pentru fiecare locaţie. (Departments)
select location_id, count(department_id)
from departments
group by location_id;
4. Afişaţi numărul de oraşe distincte care sunt înregistrate pentru fiecare ţară.
(Locations) Ordonaţi datele în funcţie de numărul de oraşe.
select count(distinct city)
from locations
group by country_id
order by count(distinct city);
5. Afişaţi departamentele în care salariul maxim este mai mare dacât 10000.
select department_id, max(salary)
from employees
group by department_id
having max(salary)>10000;
6. Afişaţi numărul de angajati cu comision pentru fiecare job.
select job_id, count(employee_id)
from employees
where commission_pct >0 (where commission_pct is not null)
group by job_id;
select count(commission_pct), job_id
from employees
group by job_id
7. Afişaţi numărul de departamente care au manager.
select count(department_id)
from departments
where manager_id is not null;
8. Afişaţi media rotunjită a salariului minim pentru fiecare tip de job.
select round(avg(min(salary)))
from employees
group by job_id;
9. Afişaţi salariul maxim şi data primei angajări pentru fiecare departament şi fiecare
job. Ordonaţi datele după data afişată.
select DEPARTMENT_ID, JOB_ID ,max(salary), min(hire_date)
from employees
group by department_id, job_id
order by MIN(hire_date) asc;
10. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte.
select to_char(hire_date, 'yyyy'), max(salary), count(employee_id)
From employees
group by to_char(hire_date, 'yyyy');
11. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte, pentru anii
în care acest număr a fost mai mare decât 10.
select to_char(hire_date, 'yyyy'), max(salary), count(employee_id)
From employees
group by to_char(hire_date, 'yyyy')
having count(employee_id)>10;
12. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte, pentru anii
1993-1998.
select to_char(hire_date, 'yyyy'),count(employee_id) , max(salary)
From employees
group by to_char(hire_date, 'yyyy')
having to_char(hire_date, 'yyyy')>1993 AND to_char(hire_date, 'yyyy')<1998;
13. Afişaţi salariul minim şi maxim pentru angajatii de tip funcţionar din fiecare
departament.
select max(salary), min (salary)
from employees
where job_id like '%CLERK%'
group by department_id;
14. Eliminaţi din rezultatele de la punctul anterior job-urile cu salariul maxim sub
4000.
select min(salary), max(salary)
from employees
where job_id like'%CLERK%'
group by department_id
having max(salary)>4000;
15. Afisati numarul de angajati pentru fiecare an si luna in parte.
select COUNT(EMPLOYEE_ID), TO_CHAR(HIRE_DATE, 'mm-yyyy')
from employees
group by TO_CHAR(HIRE_DATE, 'mm-yyyy');
16. Afişaţi suma a două numere introduse la momentul execuţiei.
select &a + &b
from dual;
17. Afişaţi angajaţii cu salariul mai mare decât o valoare dată la momentul execuţiei.
select first_name, last_name, department_id, job_id // sauuuuu *
from employees
where salary>&min;
18. Afişaţi angajaţii al căror nume începe cu o literă indicată la momentul execuţiei.
select first_name
from employees
where first_name like '&n%';
19. Afişaţi departamentele în care salariul minim este mai mare decât o anumită
valoare.
select department_name, min(salary)
from employees
group by department_name
having min(salary)>&val;
19. Afişaţi ţările (country_id) în care numărul de oraşe este mai mare decât o anumită
valoare.
select country_id, count(city)
from locations
group by country_id
having count(city)>&vall;
21. Afişaţi salariul minim şi salariul maxim pentru un job indicat la momentul
execuţiei.
select job_id, min(salary), max(salary)
from employees
where job_id like '&…%';