Allegro75
@Allegro75
SummaryTables.ru - сайт с футбольной статистикой

Как составить SQL-запрос, к-рый покажет сумму данных по колонке A у строк с неуникальным значением в колонке B?

Есть таблица с колонками:
- id;
- order_id;
- order_sum.
В колонке id номера уникальные, а вот в колонке order_id много дубликатов - строк у к-рых этот order_id совпадает.
Задача: составить такой SQL-запрос, к-рый покажет сумму по order_sum у строк с неуникальным order_id (или как вариант - с уникальным).
Исходим из того, что order_sum у дубликатов одинаковый.
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Получить order_sum по каждому order_id, имеющему дубликаты:
SELECT
  order_id,
  MAX(order_sum) AS d_sum
FROM table
GROUP BY order_id
HAVING COUNT(id) > 1

Просто так order_sum в списке полей написать не получится - можно только те поля, что входят в GROUP BY.
Но можно использовать агрегатные функции: MAX, MIN, AVG, SUM, COUNT.

Просуммировать всё:
SELECT SUM(d_sum) AS a_sum
FROM (
  SELECT
    order_id,
    MAX(order_sum) AS d_sum
  FROM table
  GROUP BY order_id
  HAVING COUNT(id) > 1
) AS q
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы