-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHW_SQL_3.sql
More file actions
234 lines (199 loc) · 10.1 KB
/
HW_SQL_3.sql
File metadata and controls
234 lines (199 loc) · 10.1 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
--SQL HomeWork 3. Joins
--
--Åñëè äëÿ êàêîãî-òî êåéñà íàäî ñäåëàòü äîïîëíèòåëüíóþ òàáëèöó, íàïîëíèòü å¸ äàííûìè, òî äåëàéòå )
--
--
-- 1. Âûâåñòè âñåõ ðàáîòíèêîâ ÷üè çàðïëàòû åñòü â áàçå, âìåñòå ñ çàðïëàòàìè.
select employees.id, employee_name ,monthly_salary from employee_salary
join employees on employee_id = employees.id
join salary on salary.id = salary_id;
-- 2. Âûâåñòè âñåõ ðàáîòíèêîâ ó êîòîðûõ ÇÏ ìåíüøå 2000.
select employee_id, employee_name, monthly_salary from employee_salary
join employees on employee_id = employees.id
join salary on salary_id = salary.id
where monthly_salary < 2000;
-- 3. Âûâåñòè âñå çàðïëàòíûå ïîçèöèè, íî ðàáîòíèê ïî íèì íå íàçíà÷åí. (ÇÏ åñòü, íî íå ïîíÿòíî êòî å¸ ïîëó÷àåò.)
select salary.id, monthly_salary from salary
left join employee_salary on salary_id = salary.id
where employee_id is null;
-- 4. Âûâåñòè âñå çàðïëàòíûå ïîçèöèè ìåíüøå 2000 íî ðàáîòíèê ïî íèì íå íàçíà÷åí. (ÇÏ åñòü, íî íå ïîíÿòíî êòî å¸ ïîëó÷àåò.)
select salary.id, monthly_salary from salary
left join employee_salary on salary_id = salary.id
where employee_id is null and salary.monthly_salary < 2000;
-- 5. Íàéòè âñåõ ðàáîòíèêîâ êîìó íå íà÷èñëåíà ÇÏ.
select employee_name, employee_salary.salary_id from employees
left join employee_salary on employee_id = employees.id
where salary_id is null;
-- 6. Âûâåñòè âñåõ ðàáîòíèêîâ ñ íàçâàíèÿìè èõ äîëæíîñòè.
select * from roles_employee
select employees.id, employee_name, role_name from roles_employee
join employees on employee_id = employees.id
join roles on role_id = roles.id
-- 7. Âûâåñòè èìåíà è äîëæíîñòü òîëüêî Java ðàçðàáîò÷èêîâ.
select employee_name, role_name from roles_employee
join employees on employee_id = employees.id
join roles on role_id = roles.id
where role_name like '%Java%'
-- 8. Âûâåñòè èìåíà è äîëæíîñòü òîëüêî Python ðàçðàáîò÷èêîâ.
select employee_name, role_name from roles_employee
join employees on employees.id = employee_id
join roles on roles.id = role_id
where role_name like '%Python developer%'
-- 9. Âûâåñòè èìåíà è äîëæíîñòü âñåõ QA èíæåíåðîâ.
select employee_name, role_name from roles_employee
join employees on employee_id = employees.id
join roles on roles.id = role_id
where role_name like '%QA%'
-- 10. Âûâåñòè èìåíà è äîëæíîñòü ðó÷íûõ QA èíæåíåðîâ.
select employee_name, role_name from roles_employee
join employees on employees.id = employee_id
join roles on roles.id = role_id
where role_name like '%Manual QA%'
-- 11. Âûâåñòè èìåíà è äîëæíîñòü àâòîìàòèçàòîðîâ QA
select employee_name, role_name from roles_employee
join employees on employees.id = employee_id
join roles on roles.id = role_id
where role_name like '%Automation QA%'
-- 12. Âûâåñòè èìåíà è çàðïëàòû Junior ñïåöèàëèñòîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employee_salary.employee_id = employees.id
join salary on employee_salary.salary_id = salary.id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles_employee.role_id = roles.id
where role_name like '%Junior%';
-- 13. Âûâåñòè èìåíà è çàðïëàòû Middle ñïåöèàëèñòîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Middle%'
-- 14. Âûâåñòè èìåíà è çàðïëàòû Senior ñïåöèàëèñòîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Senior%'
-- 15. Âûâåñòè çàðïëàòû Java ðàçðàáîò÷èêîâ
select monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Java developer%'
-- 16. Âûâåñòè çàðïëàòû Python ðàçðàáîò÷èêîâ
select monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Python developer%'
-- 17. Âûâåñòè èìåíà è çàðïëàòû Junior Python ðàçðàáîò÷èêîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Junior Python%'
-- 18. Âûâåñòè èìåíà è çàðïëàòû Middle JS ðàçðàáîò÷èêîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Middle JavaScript%'
-- 19. Âûâåñòè èìåíà è çàðïëàòû Senior Java ðàçðàáîò÷èêîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Senior Java developer%'
select * from roles
where role_name like '%QA%'
-- 20. Âûâåñòè çàðïëàòû Junior QA èíæåíåðîâ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where roles.id in (10, 18)
-- 21. Âûâåñòè ñðåäíþþ çàðïëàòó âñåõ Junior ñïåöèàëèñòîâ
--ï. 12 äëÿ ïðîâåðêè
select AVG(monthly_salary) from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%Junior%'
-- 22. Âûâåñòè ñóììó çàðïëàò JS ðàçðàáîò÷èêîâ
select sum(monthly_salary) from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%JavaScript%'
-- 23. Âûâåñòè ìèíèìàëüíóþ ÇÏ QA èíæåíåðîâ
select min(monthly_salary) from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%QA%'
-- 24. Âûâåñòè ìàêñèìàëüíóþ ÇÏ QA èíæåíåðîâ
select max(monthly_salary) from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where role_name like '%QA%'
-- 25. Âûâåñòè êîëè÷åñòâî QA èíæåíåðîâ
select count(*) from roles_employee
join roles on roles.id = role_id
where role_name like '%QA%';
-- 26. Âûâåñòè êîëè÷åñòâî Middle ñïåöèàëèñòîâ.
select count(*) from roles_employee
join roles on roles.id = role_id
where role_name like '%Middle%'
-- 27. Âûâåñòè êîëè÷åñòâî ðàçðàáîò÷èêîâ
select count(*) from roles_employee re
join roles r on r.id = re.role_id
where role_name like '%developer%'
-- 28. Âûâåñòè ôîíä (ñóììó) çàðïëàòû ðàçðàáîò÷èêîâ.
select sum(monthly_salary) from employee_salary
join salary on employee_salary.salary_id = salary.id
join roles_employee on roles_employee.employee_id = employee_salary.employee_id
join roles on roles.id =roles_employee.role_id
where roles.role_name like '%developer';
-- 29. Âûâåñòè èìåíà, äîëæíîñòè è ÇÏ âñåõ ñïåöèàëèñòîâ ïî âîçðàñòàíèþ
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
order by monthly_salary;
-- 30. Âûâåñòè èìåíà, äîëæíîñòè è ÇÏ âñåõ ñïåöèàëèñòîâ ïî âîçðàñòàíèþ ó ñïåöèàëèñòîâ ó êîòîðûõ ÇÏ îò 1700 äî 2300
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where monthly_salary > 1700 and monthly_salary < 2300
order by monthly_salary;
-- 31. Âûâåñòè èìåíà, äîëæíîñòè è ÇÏ âñåõ ñïåöèàëèñòîâ ïî âîçðàñòàíèþ ó ñïåöèàëèñòîâ ó êîòîðûõ ÇÏ ìåíüøå 2300
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where monthly_salary < 2300
order by monthly_salary;
-- 32. Âûâåñòè èìåíà, äîëæíîñòè è ÇÏ âñåõ ñïåöèàëèñòîâ ïî âîçðàñòàíèþ ó ñïåöèàëèñòîâ ó êîòîðûõ ÇÏ ðàâíà 1100, 1500, 2000
select employee_name, role_name, monthly_salary from employee_salary
join employees on employees.id = employee_salary.id
join salary on salary.id = employee_salary.salary_id
join roles_employee on roles_employee.employee_id = employees.id
join roles on roles.id = roles_employee.role_id
where (monthly_salary = 1100) or (monthly_salary = 1500) or (monthly_salary = 2000)
order by monthly_salary;