Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите, чего не хватает в запросе по 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;
Голосование за лучший ответ
Максим Искусственный Интеллект (213289) 2 года назад
Данные группируются при помощи GROUP BY. Иначе ты считаешь общую сумму.
Ирина ОдинецЗнаток (271) 2 года назад
Получается так?
Ирина ОдинецЗнаток (271) 2 года назад
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(*)
Ирина ОдинецЗнаток (271) 2 года назад
Это теория, просто даны данные, я не могу подключиться к БД и протестить), так бы тут не писала конечно).
Ирина ОдинецЗнаток (271) 2 года назад
Спасибо большое!!!
Похожие вопросы