← Wszystkie zadaniaSQL · Junior
Wszyscy klienci i liczba zamówień
Wypisz każdego klienta z liczbą jego zamówień: kolumny name i orders_count. Klienci bez zamówień też muszą być w wyniku, z zerem.
Najpierw ci, którzy zamówili najwięcej, a przy równej liczbie według imienia. Imiona mogą się powtarzać: to różni klienci.
Tabele
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 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 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);