SQL: Коррелированные подзапросы и EXISTS — Клиенты с завершённым заказом от 1000
Практическая задача по SQL на тему «Коррелированные подзапросы и EXISTS». В условии приведены схема таблиц, ограничения данных, имена столбцов результата и порядок сортировки. Напишите один SELECT или WITH-запрос для SQLite. Перед проверкой продумайте пустой результат, повторяющиеся строки и границы диапазонов, если они встречаются в условии. Проверяется результат запроса, поэтому допустима эквивалентная реализация. Сначала решите задачу самостоятельно; продолжение практики доступно в полном курсе продвинутого SQL.
Клиенты с завершённым заказом от 1000
Что уже дано
Уже заполнены clients(client_id INTEGER PRIMARY KEY,name TEXT) и orders(order_id INTEGER PRIMARY KEY,client_id INTEGER,status TEXT,amount INTEGER). Первичные ключи положительные и уникальные. В orders client_id может быть NULL или отсутствовать в clients. name может быть NULL или повторяться; не содержит | и перевода строки. status — completed, new, cancelled либо NULL. amount — INTEGER от 0 до 2 000 000 000 либо NULL; неизвестная сумма не удовлетворяет порогу. В каждой таблице не более 1000 строк.
Что нужно сделать
Найдите клиентов, у которых существует хотя бы один заказ со статусом completed и amount >= 1000. Каждый клиент должен встретиться один раз. Отработайте проверку через EXISTS.
Ввод и вывод
Отправьте один SELECT или WITH-запрос; stdin и печать не используются. Ровно 2 столбцов в указанном порядке и с этими именами: client_id, name. client_id — INTEGER, name — исходный TEXT либо NULL. Сортировка: client_id ASC. При отсутствии подходящих клиентов результат пустой. В тестовых результатах разделитель |, NULL — пустое поле. Допускается любой эквивалентный запрос.
Пример
- Подготовка данных
INSERT INTO clients VALUES (1,'A'),(2,'B'),(3,'C'),(4,'D'); INSERT INTO orders VALUES (1,1,'completed',1000),(2,1,'completed',9000),(3,2,'completed',999),(4,2,'new',3000),(5,4,'completed',1001);
- Вывод
1|A 4|D
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
- SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках
- SQL: RFM-анализ на дату среза — RFM и покупки за последний месяц
- SQL: Взвешенное среднее и агрегация показателей — Общий средний чек через агрегаты категорий
- SQL: Выделение пользовательских сессий — Номер сессии и позиция клика
- SQL: Обход дерева: глубина и путь — Пути, корни и листья всего каталога
