← Wszystkie zadaniaSQL · Junior
Liczba i suma według statusu
Policz zamówienia według statusu: kolumny status, orders (liczba) i revenue (suma total).
Najpierw statusy z największą liczbą zamówień, a przy równej liczbie według nazwy statusu.
Tabele
CREATE TABLE orders (
id int PRIMARY KEY,
customer_id int NOT NULL,
status text NOT NULL,
total numeric(10, 2) NOT NULL
);Ctrl+Enter uruchamia testy. Tab robi wcięcie; aby wyjść z edytora klawiaturą, naciśnij Esc, a potem Tab. Kod zapisuje się w tej przeglądarce.
Testy (3)
Każdy test wypełnia tabele własnymi danymi i porównuje wynik twojego zapytania z oczekiwanym: te same kolumny (nazwy i kolejność) i te same wiersze w tej samej kolejności, więc ORDER BY ma znaczenie. Zapytanie działa w prawdziwym PostgreSQL prosto w przeglądarce; pierwsze uruchomienie go pobiera (około 5 MB).
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;