← Усі задачіSQL · Junior
Усі клієнти й кількість замовлень
Виведіть кожного клієнта з кількістю його замовлень: колонки name і orders_count. Клієнти без замовлень теж мають бути в результаті з нулем.
Спершу ті, хто замовляв найбільше, за рівної кількості - за ім'ям. Імена можуть повторюватися: це різні клієнти.
Таблиці
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
);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, 10.00), (2, 1, 20.00), (3, 2, 5.00);
-- nobody has ordered yet INSERT INTO customers VALUES (1, 'Ann'), (2, 'Bob');
-- two customers with the same name INSERT INTO customers VALUES (1, 'Ann'), (2, 'Ann'), (3, 'Zed'); INSERT INTO orders VALUES (1, 1, 10.00), (2, 2, 20.00), (3, 2, 30.00);