Подскажите, чего не хватает в запросе по sql. Преподаватель говорит, что надо еще сгруппировать данные, я новичок, хелп
Ирина Одинец
Знаток
(271),
на голосовании
2 года назад
Менеджер предложил добавить новую функциональность в продукт: мониторинг, который показывает самых активных клиентов за всё время работы компании. Проверь, что список пользователей корректно выводится на экран. На этом этапе разработки достаточно проверить только ID клиентов. Выбери пять самых активных клиентов по количеству заказов. В результирующую таблицу выведи ID каждого пользователя и число заказов. Отсортируй данные по убыванию числа заказов, выбери пять самых активных клиентов.
Данные
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;
Мое решение:
SELECT USER_ID AS Users, COUNT(ORDERS_ID) AS Orders_num FROM Orders ORDER BY Orders_num DESC LIMIT 5;
SELECT USER_ID AS Users, COUNT(ORDERS_ID) AS Orders_num FROM Orders GROUP BY USER ID ORDER BY Orders_num DESC LIMIT 5;
Максим
Искусственный Интеллект
(213289)
Ты пишешь на глазок или ты можешь тестировать свои SQL-запросы?
Да, это уже выглядит лучше. Но можно писать просто COUNT(*)
Данные
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;
Мое решение:
SELECT
USER_ID AS Users,
COUNT(ORDERS_ID) AS Orders_num
FROM
Orders
ORDER BY
Orders_num DESC
LIMIT 5;