У вас есть две таблицы:

Сгруппируйте заказы по клиенту и отфильтруйте группы через HAVING SUM(total_amount) > 1000. Имя и город берутся из customers.

Короткий ответ

Что ответить на собеседовании

Сгруппируйте заказы по клиенту и отфильтруйте группы через HAVING SUM(total_amount) > 1000. Имя и город берутся из customers.

Подробный разбор

Ответ с пояснениями

Условие

У вас есть две таблицы:

orders (заказы): order_id (уникальный идентификатор заказа) customer_id (идентификатор клиента) order_date (дата заказа) total_amount (общая сумма заказа)

customers (клиенты): customer_id (уникальный идентификатор клиента) customer_name (имя клиента) city (город клиента)

Задание: Напишите SQL-запрос, который вернет следующие данные:

Список клиентов (имя и город), которые сделали заказы на общую сумму больше 1000 долларов. Для каждого клиента из пункта 1 выведите общую сумму всех заказов.

Ответ

Сгруппируйте заказы по клиенту и отфильтруйте группы через HAVING SUM(total_amount) > 1000. Имя и город берутся из customers.

SELECT c.customer_name, c.city,
       SUM(o.total_amount) AS total_spent
FROM customers AS c
JOIN orders AS o ON o.customer_id = c.customer_id
GROUP BY c.customer_id, c.customer_name, c.city
HAVING SUM(o.total_amount) > 1000;

Группировка по customer_id не объединяет разных людей с одинаковыми именами. WHERE проверяет отдельные строки до агрегации, поэтому для итоговой суммы нужен HAVING. Предполагается, что total_amount выражен в одной валюте и все перечисленные заказы входят в расчёт.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее