Вступить в клуб →
лёгкаявопросSQL и оптимизация запросов

Сколько строк вернёт оконная функция вместо GROUP BY

В таблице dds.orders 1000 заказов от 50 клиентов.

SELECT order_id,
       client_id,
       amount,
       sum(amount) OVER (PARTITION BY client_id) AS client_total
FROM dds.orders;

Сколько строк вернёт запрос и что будет в колонке client_total?

  • 50 строк — по одной на клиента, с суммой его заказов.
  • Ошибку: order_id и amount не перечислены в PARTITION BY, а значит их нельзя выбирать вместе с агрегатом.
  • 1000 строк — каждая строка заказа, рядом с ней сумма по всем заказам её клиента.
  • 1000 строк, но client_total одинаков во всех строках и равен общей сумме по таблице.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела