-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFirstTask.sql
45 lines (38 loc) · 1.11 KB
/
FirstTask.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
* Запрос, выводящий имя сотрудника с максимальной заработной платой.
*/
SELECT id, name
FROM employee
ORDER BY salary DESC
LIMIT 1;
/*
* Запрос, выводящий максимальную длину цепочки руководителей
* по таблице сотрудников
*/
WITH RECURSIVE tree_traversal AS (
SELECT id, 1 lvl
FROM employee
WHERE employee.chief_id IS NULL
UNION ALL
SELECT employee.id, lvl + 1
FROM tree_traversal d, employee
WHERE employee.chief_id = d.id
)
SELECT Max(lvl)
FROM tree_traversal;
/*
* Запрос, выводящий отдел с максимальной заработной платой сотрудников
*/
SELECT dep.id, dep.name
FROM department dep
JOIN employee empl on dep.id = empl.department_id
GROUP BY dep.name, dep.id
ORDER BY sum(empl.salary) DESC
LIMIT 1;
/*
* Запрос, выводящий сотрудника, чье имя начинается на "Р"
* и заканчивается на "н"
*/
SELECT id, name
FROM employee
WHERE name LIKE 'Р%н';