Thanks to visit codestin.com
Credit goes to www.scribd.com

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

Corr Tp4 SQL

Uploaded by

Noha Abdelli
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)
5 views4 pages

Corr Tp4 SQL

Uploaded by

Noha Abdelli
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 * from countries;


2.
SELECT first_name, last_name
FROM employees
WHERE commission_pct IS NULL;
3.
select last_name,first_name, department_id
from employees
where department_id=30;
4.
select last_name||' '||first_name as "Nom et prénom", department_id as "numéro
département"
from employees
where department_id=30;
5.
select * from departments;
a.
select department_id as "id dept",substr(department_name,1,3)||'.' as "nom
dept",location_id as location from departments
where department_id<60;
6.
SELECT first_name, last_name,
EXTRACT(YEAR FROM hire_date) AS year,
TO_CHAR(hire_date, 'Month') AS month,
TO_CHAR(hire_date, 'Q') AS quarter
FROM employees
ORDER BY 3 DESC;
7.
SELECT first_name ||' '|| last_name as "nom et prénom",
TRUNC(MONTHS_BETWEEN(SYSDATE, hire_date)) AS "ancienneté"
FROM employees
WHERE department_id = 30
ORDER by 2 desc;
8.
SELECT first_name, last_name,
CASE
WHEN EXTRACT(YEAR FROM hire_date) = 1998 THEN 'NEEDS REVIEW'
ELSE 'NOT THIS YEAR'
END AS review
FROM employees
ORDER BY 3;
--OU
SELECT first_name, last_name,
DECODE(to_char(hire_date, 'yyyy'), 1998, 'NEEDS REVIEW','NOT THIS YEAR') AS review
FROM employees
ORDER BY 3;
9.
SELECT department_id, first_name, last_name, salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees;
10.
SELECT MAX(salary), MIN(salary)
FROM employees;
11.
SELECT department_id, ROUND(AVG(salary), 2) AS "Salaire moyen"
FROM employees
GROUP BY department_id
ORDER BY 1;
12.
SELECT department_id as identifiant, COUNT(*) AS "nbr d'employé"
FROM employees
GROUP BY department_id;
a.
SELECT department_id as identifiant, COUNT(*) AS "nbr d'employé"
FROM employees
GROUP BY department_id
ORDER BY 1;
13.
SELECT first_name, last_name, department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id
ORDER BY 3;
14.
SELECT first_name, last_name, job_title
FROM employees e
JOIN jobs j ON e.job_id = j.job_id;
15.
SELECT d.*, e.first_name, e.last_name
FROM departments d left JOIN employees e
ON d.manager_id=e.employee_id;
16.
SELECT department_name, country_name, region_name
FROM departments d
JOIN locations l ON d.location_id = l.location_id
JOIN countries c ON l.country_id = c.country_id
JOIN regions r ON c.region_id = r.region_id
ORDER BY 1;
17.
SELECT department_name, trunc(SUM(MONTHS_BETWEEN(SYSDATE, hire_date)), 2) AS
total_Months
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY department_name;
a.
SELECT d.department_id, department_name, trunc(SUM(MONTHS_BETWEEN(SYSDATE,
hire_date)), 2) AS totalMois
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_id,department_name;
18.
SELECT e.employee_id||'-'||e.first_name||' '||e.last_name AS collaborateur,
m.employee_id||'-'||m.first_name||' '||m.last_name AS manager
FROM employees e JOIN employees m ON e.manager_id = m.employee_id;
a.
SELECT e.employee_id||'-'||e.first_name||' '||e.last_name AS collaborateur,
m.employee_id||'-'||m.first_name||' '||m.last_name AS manager
FROM employees e LEFT JOIN employees m ON e.manager_id = m.employee_id;
19.
a.
SELECT department_id
FROM departments
WHERE department_id NOT IN (SELECT DISTINCT department_id FROM employees where
department_id is not null);
b.
SELECT department_id
FROM departments
MINUS
SELECT DISTINCT department_id FROM employees;
20.
SELECT *
FROM employees
WHERE salary = (SELECT MIN(salary) FROM employees);
21.
SELECT *
FROM employees
WHERE manager_id = (SELECT manager_id FROM employees WHERE employee_id = 110);
22.
a.
SELECT first_name, last_name, job_title
FROM employees e join jobs j on j.job_id = e.job_id;
23.
SELECT *
FROM employees
WHERE salary > ALL (SELECT salary FROM employees WHERE job_id = 'SA_MAN');
24.
SELECT first_name, last_name, salary, department_id
FROM employees e
WHERE salary < (SELECT AVG(salary) FROM employees WHERE department_id =
e.department_id);
25.
SELECT department_id, count(employee_id) "nbr employes"
FROM employees
GROUP BY department_id
HAVING count(employee_id)<40
ORDER BY 2;
26.
SELECT employee_id,department_id FROM employees WHERE department_id IN (SELECT
department_id FROM employees GROUP BY department_id HAVING min(salary)>2000);
27.
SELECT department_id,avg(salary)
FROM employees
GROUP BY department_id
HAVING avg(salary)>(select max(salary) from employees where department_id=50)
ORDER BY 1;
28.
SELECT department_id, MAX(salary)
FROM employees
WHERE job_id LIKE '%REP'
GROUP BY department_id
ORDER BY department_id;
a.
SELECT department_id, job_id, MAX(salary)
FROM employees
WHERE job_id LIKE '%REP'
GROUP BY department_id,job_id
ORDER BY department_id;
b.
SELECT department_id, job_id, MAX(salary)
FROM employees
WHERE job_id LIKE '%REP'
GROUP BY department_id,job_id
HAVING MAX(salary)>=10000
ORDER BY department_id;
29.
SELECT department_id,avg(salary)
FROM employees
WHERE department_id in (20,30,80)
GROUP BY department_id
HAVING max(salary)>9000
ORDER BY 1;
a.
SELECT department_name,avg(salary) AS Salaire_moyen
FROM employees e join departments d on e.department_id=d.department_id
WHERE e.department_id in (20,30,80)
GROUP BY department_name
HAVING max(salary)>9000
ORDER BY 1;
b.
SELECT department_name,avg(salary)
FROM employees e join departments d on e.department_id=d.department_id
WHERE e.department_id in (20,30,80)
GROUP BY department_name
HAVING max(salary)>9000 AND avg(salary)>8000
ORDER BY 1;
30.
select ' ' as liste, region_name
from regions
union
select 'Total', to_char(count(*))
from regions;
31.
SELECT to_char(department_id), COUNT(*) AS num_employees
FROM employees
GROUP BY department_id
UNION
SELECT 'Total', COUNT(*)
FROM employees
ORDER BY 2;
32.
create table grades as select job_id as grade, min_salary, max_salary from jobs
where 1=2;
a.
INSERT INTO GRADES VALUES ('G1', 2000, 5000);
INSERT INTO GRADES VALUES ('G2', 5001, 10000);
INSERT INTO GRADES VALUES ('G3', 10001, 17000);
INSERT INTO GRADES VALUES ('G4', 17001, 25000);
COMMIT;
33.
select first_name,last_name,salary,grade
from employees e join grades g on e.salary between g.min_salary and g.max_salary
order by 3 desc;
34.
create or replace view emp2g as select first_name||' '||last_name as nomPrenom,
nvl(commission_pct,0) as prime, salary, grade from employees e join grades g on
e.salary between g.min_salary and g.max_salary order by employee_id;
a. select * from emp2g;

You might also like