Исходные данные для заданий ниже
Ты тестируешь сервис, который доставляет еду за 30 минут. Пока это маленький стартап, поэтому ты работаешь всего с четырьмя таблицами:
Orders — все доставленные заказы;
ORDERS_ID — ID заказов, int;
USER_ID — ID пользователей, int;
EMPLOYEE_ID — ID сотрудников, int;
DELIVERY_TIME — время доставки в минутах, int;
ITEMS — список товаров, char;
Users — пользователи;
USER_ID — ID пользователей, int;
FULL_NAME — полное ФИО пользователя, char;
PHONE — номер телефона пользователя, char;
ADDRESS — адрес пользователя, char;
Employees — работники;
EMPLOYEE_ID — ID сотрудника, int;
FIRST_NAME —имя сотрудника, char;
LAST_NAME — фамилия сотрудника, char;
PHONE — телефон сотрудника, char;
JOB_ID — ID специализации, int;
Jobs — типы работ в сервисе
JOB_ID — ID специализации, int;
JOB_TYPE — тип специализации, char;
HOURS — число рабочих часов в неделю, int;
SALARY — зарплата сотрудника с данной специализацией в рублях, int;
==================================================================================================
1 - ЗАДАНИЕ
В службу поддержки пришло много жалоб: заказы, в которых есть гречка, доставляют почти час, хотя сервис обещает успеть в 30 минут.
Проверь, действительно ли курьеры опаздывают. Выбери все заказы, где есть хотя бы один товар - «гречка» и время доставки свыше 30 минут. В результирующей таблице должны быть ID заказов и ID курьеров.
Мой вариант ответа:
SELECT
ORDERS_ID,
EMPLOYEE_ID
FROM
orders
WHERE
ORDERS_ID = 'гречка' AND DELIVERY_TIME > 30;
=======================================================================================================
2 - ЗАДАНИЕ
Менеджер предложил добавить новую функциональность в продукт: мониторинг, который показывает самых активных клиентов за всё время работы компании.
Проверь, что список пользователей корректно выводится на экран. На этом этапе разработки достаточно проверить только ID клиентов.
Выбери пять самых активных клиентов по количеству заказов.
В результирующую таблицу выведи ID каждого пользователя и число заказов.
Отсортируй данные по убыванию числа заказов, выбери пять самых активных клиентов.
В ответе приложи SQL-запрос.
МОЙ ВАРИАНТ ОТВЕТА:
SELECT
Users.USER_ID,
COUNT(Orders.ORDERS_ID) as orders_id
FROM Users
INNER JOIN Orders ON Orders.ORDERS_ID = Users.USER_ID
ORDER BY (orders_id) DESC
LIMIT 5
===================================================================================================
3 - ЗАДАНИЕ
Из бухгалтерии пришёл баг-репорт: зарплаты сотрудников рассчитываются некорректно. Оказалось, что почти все ошибки в расчётах — в расчётных листах менеджеров.
Выведи список ID всех сотрудников, у которых в специализации содержится «менеджер», с зарплатой больше 70 000 рублей.
В ответе приложи SQL-запрос.
Мой варинта ответа:
SELECT
Employees.EMPLOYEE_ID
FROM Employees
INNER JOIN Jobs ON Jobs.SALARY = Employees.EMPLOYEE_ID
WHERE EMPLOYEE_ID = 'менеджер' AND SALARY > 70 000