← Усі задачіSQL · Junior
Кількість і сума за статусами
Порахуйте замовлення за статусами: колонки status, orders (кількість) і revenue (сума total).
Спершу статуси з найбільшою кількістю замовлень, за рівної кількості - за назвою статусу.
Таблиці
CREATE TABLE orders (
id int PRIMARY KEY,
customer_id int NOT NULL,
status text NOT NULL,
total numeric(10, 2) NOT NULL
);Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (3)
Кожен тест заповнює таблиці своїми даними й порівнює результат вашого запиту з очікуваним: ті самі колонки (назви й порядок) і ті самі рядки в тому самому порядку, тож ORDER BY важливий. Запит виконується в справжньому PostgreSQL просто в браузері; перший запуск завантажує його (близько 5 МБ).
INSERT INTO orders VALUES (1, 10, 'paid', 100.00), (2, 11, 'paid', 50.50), (3, 10, 'cancelled', 20.00), (4, 12, 'paid', 10.00), (5, 13, 'pending', 75.00);
-- equal counts: sorted by status INSERT INTO orders VALUES (1, 1, 'shipped', 10.00), (2, 2, 'paid', 20.00), (3, 3, 'shipped', 30.00), (4, 4, 'paid', 40.00);
-- no orders at all SELECT 1;