SQL. Проверка запроса
Задание
В этой задаче необходимо рассчитать общий объем продаж для N ведущих компаний. Для этого есть две таблицы
: company и sales.
Структура таблиц выглядит так, как показано ниже, и содержит 10 миллиардов строк:

Напишите запрос SQL, который показывает 5 компаний с наибольшим объемом продаж
Я сделала так:(мне показалось подозрительно легко, может быть я не права)
SELECT TOP (5) c.company_name , SUM(s.price)
FROM company AS c INNER JOIN sales AS s
ON c.item_sold = s.item_sold
GROUP BY c.company_name
ORDER BY s.price DESC
Ответы (1 шт):
Приведенный запрос вообще не должен выполняться. Вы сортируете по полю, которое не участвует в группировке. А если бы и выполнялся, что бы это вам дало? Вам нужно выбрать предприятия с максимальным объемом продаж, а вы сортируете по цене отдельного товара.
Задача решается указанием правильной сортировки
SELECT
c.company_name , SUM(s.price) AS total
FROM company AS c INNER JOIN sales AS s
ON c.item_sold = s.item_sold
GROUP BY c.company_name
ORDER BY total DESC