← Wszystkie zadaniaSQL · Senior

Wzrost przychodu miesiąc do miesiąca

Policz przychód według miesięcy i wzrost względem poprzedniego miesiąca: kolumny month (pierwszy dzień miesiąca, typ date), revenue i growth_pct, procent zmiany zaokrąglony do jednego miejsca (NULL dla pierwszego miesiąca). Według month.

Na przykład 200 → 300 to 50.0, a 300 → 150 to -50.0.

Tabele

CREATE TABLE orders (
  id         int PRIMARY KEY,
  created_at date NOT NULL,
  total      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 orders VALUES
      (1, '2024-01-05', 100.00), (2, '2024-01-20', 100.00),
      (3, '2024-02-11', 300.00),
      (4, '2024-03-02', 150.00);
  2. -- growth rounded to one decimal place
    INSERT INTO orders VALUES
      (1, '2024-04-01', 300.00),
      (2, '2024-05-15', 400.00),
      (3, '2024-06-30', 401.00);
  3. -- a single month: growth is NULL
    INSERT INTO orders VALUES (1, '2024-09-09', 50.00);