← Wszystkie zadaniaSQL · Senior

Przychód dzienny i suma narastająca

Dla każdego dnia ze sprzedażą wypisz day, revenue (suma z dnia) i running_total (suma od pierwszego dnia do tego włącznie), według daty. Jednego dnia może być kilka sprzedaży.

Tabele

CREATE TABLE sales (
  id     int PRIMARY KEY,
  day    date NOT NULL,
  amount numeric(10, 2) NOT NULL
);

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).

  1. INSERT INTO sales VALUES
      (1, '2024-03-01', 100.00),
      (2, '2024-03-01', 50.00),
      (3, '2024-03-02', 30.00),
      (4, '2024-03-04', 20.00);
  2. -- rows are not inserted in date order
    INSERT INTO sales VALUES
      (1, '2024-05-03', 5.00),
      (2, '2024-05-01', 10.00),
      (3, '2024-05-02', 1.50),
      (4, '2024-05-01', 2.50);
  3. INSERT INTO sales VALUES (1, '2024-01-01', 99.99);