← Усі задачіSQL · Middle
Клієнти, що витратили понад 1000 за 2024 рік
Виведіть клієнтів, чиї замовлення за 2024 рік разом перевищують 1000: колонки name і spent (сума за 2024 рік). Замовлення з інших років не враховуються. Спершу ті, хто витратив більше, за рівної суми - за ім'ям.
Таблиці
CREATE TABLE customers (
id int PRIMARY KEY,
name text NOT NULL
);
CREATE TABLE orders (
id int PRIMARY KEY,
customer_id int NOT NULL REFERENCES customers (id),
total numeric(10, 2) NOT NULL,
created_at date NOT NULL
);Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (3)
Кожен тест заповнює таблиці своїми даними й порівнює результат вашого запиту з очікуваним: ті самі колонки (назви й порядок) і ті самі рядки в тому самому порядку, тож ORDER BY важливий. Запит виконується в справжньому PostgreSQL просто в браузері; перший запуск завантажує його (близько 5 МБ).
INSERT INTO customers VALUES (1, 'Ann'), (2, 'Bob'), (3, 'Cid'); INSERT INTO orders VALUES (1, 1, 800.00, '2024-02-10'), (2, 1, 400.00, '2024-11-05'), (3, 2, 1500.00, '2024-06-01'), (4, 3, 900.00, '2024-03-03');
-- 2023 and 2025 orders don't count INSERT INTO customers VALUES (1, 'Ann'), (2, 'Bob'); INSERT INTO orders VALUES (1, 1, 900.00, '2023-12-31'), (2, 1, 200.00, '2024-01-01'), (3, 2, 600.00, '2024-12-31'), (4, 2, 600.00, '2025-01-01'), (5, 2, 500.00, '2024-07-15');
-- exactly 1000 is not more than 1000 INSERT INTO customers VALUES (1, 'Ann'), (2, 'Bob'); INSERT INTO orders VALUES (1, 1, 1000.00, '2024-05-05'), (2, 2, 1000.01, '2024-05-05');