Гранулярность результата и уникальность ключа
Содержание курса
0 / 1 баллов
Сумма заказов по клиентам
Что уже дано
Проверяющая система создаёт SQLite-таблицы clients(client_id INTEGER PRIMARY KEY, client_name TEXT) и orders(order_id INTEGER PRIMARY KEY, client_id INTEGER, order_date TEXT NOT NULL, total INTEGER NOT NULL). Данные уже загружены. В clients client_id — положительный идентификатор; разные клиенты могут иметь одинаковые имена. client_name может быть NULL. В orders client_id может быть NULL или ссылаться на отсутствующего клиента. Суммы total заданы целыми числами в копейках от 0 до 2 000 000 000, без NULL. В каждой таблице не более 1000 строк; сумма помещается в 64-битный INTEGER. Даты — непустой TEXT в формате YYYY-MM-DD (календарная дата UTC), без NULL. Идентификаторы заказов уникальны и положительны; client_id, если не NULL, — положительный INTEGER.
Что нужно сделать
Напишите запрос: одна строка на каждого клиента из clients, у которого найден хотя бы один заказ с равным client_id. Верните сумму всех его заказов. Клиентов без найденных заказов и заказы без найденного клиента не включайте. Ключ результата — client_id.
Ввод и вывод
Отправьте один SELECT или WITH-запрос; stdin и печать не используются. Ровно три столбца в таком порядке: client_id (INTEGER), client_name (TEXT или NULL, исходное имя без замены), total_sum (INTEGER). Имена выходных столбцов — как указано. Строки отсортированы по client_id по возрастанию. Если подходящих клиентов нет, результат пуст. В отображении тестов NULL выглядит как пустое поле, столбцы разделены |. Допускается любое эквивалентное решение.
После решения можно самостоятельно обернуть результат в CTE и проверить повторы client_id через GROUP BY/HAVING; на проверку отправляется сам отчёт, а не диагностический запрос.
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Дополнительная подготовка SQLite
INSERT INTO clients VALUES (1,'Аня'), (2,'Борис'), (3,'Вера'); INSERT INTO orders VALUES (101,1,'2026-01-10',600), (102,1,'2026-01-10',400), (103,1,'2026-01-11',200), (104,2,'2026-01-10',900), (105,999,'2026-01-10',700);
Ожидаемый результат SQLite1|Аня|1200 2|Борис|900
Запрос выполняется в изолированной SQLite-базе через Modal. Скрытые проверки могут добавлять свои строки перед запуском решения.
Отправьте решение, чтобы увидеть результаты тестов.
