Практика составления SQL-запросов, выполненная в рамках курса Надежды Дудник ProTestingInfo https://protestinginfo.ru/
- Вывести всех сотрудников с ролью 'Tester'
Ответ
SELECT employeeName FROM employees
WHERE roleEmployee = 'Tester';- Вывести заказчиков, у которых длительность проекта больше средней
Ответ
SELECT productOwner FROM projects
WHERE duration > (SELECT AVG(duration) FROM projects);- Вывести список всех сотрудников, заменив в значениях phone все '-' на '.'
Ответ
SELECT empId, employeeName, roleEmployee, place, REPLACE(phone, '-', '.')
FROM Employees;- Получить отчет по сотрудникам с минимальной и максимальной загрузкой. Сортировать по максимальной загрузке по убыванию
Ответ
SELECT employeeName, MIN(workload) AS minWorkload, MAX(workload) AS maxWorkload
FROM Works
GROUP BY employeeName
ORDER BY maxWorkload DESC;- Обновить данные для проекта с projectId равным 4 , проставить наименование заказчика с "External" на "Internal"
Ответ
UPDATE projects
SET productOwner = 'Internal'
WHERE projectId = 4;- Сгруппировать по названиям проектов и найти все группы, для которых определена общая сумма объема работы более 30%
Ответ
SELECT projectName, SUM(workload) AS totalWorkload FROM Works
GROUP BY projectName
HAVING SUM(workload) > 30;- Вывести количество номеров телефонов сотрудников, у которых есть телефон
Ответ
SELECT COUNT(phone) FROM Employees WHERE phone IS NOT NULL;- Посчитать количество сотрудников на проектах с длительностью от 2-х до 10-ти месяцев
Ответ
SELECT COUNT(workId) FROM Works AS w
JOIN Projects AS pr On w.projectname = pr.projectname
WHERE duration BETWEEN 2 and 10;- Вывести место сотрудника, где встречается цифра "6" в месте сотрудника, и сотрудник работает 2 месяца
Ответ
SELECT place FROM Employees AS e
JOIN Works AS w ON e.employeeName = w.employeeName
JOIN Projects AS pr ON w.projectName = pr.projectName
WHERE place LIKE '%6%' AND duration = 2;

