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 шт):

Автор решения: Anton Shchyrov

Приведенный запрос вообще не должен выполняться. Вы сортируете по полю, которое не участвует в группировке. А если бы и выполнялся, что бы это вам дало? Вам нужно выбрать предприятия с максимальным объемом продаж, а вы сортируете по цене отдельного товара.

Задача решается указанием правильной сортировки

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
→ Ссылка