← Усі задачіSQL · Senior

Зростання виручки місяць до місяця

Порахуйте виручку за місяцями й зростання відносно попереднього місяця: колонки month (перший день місяця, тип date), revenue і growth_pct - відсоток зміни, округлений до одного знака (NULL для першого місяця). За month.

Наприклад, 200 → 300 - це 50.0, а 300 → 150 - це -50.0.

Таблиці

CREATE TABLE orders (
  id         int PRIMARY KEY,
  created_at date NOT NULL,
  total      numeric(10, 2) NOT NULL
);

Тести (3)

Кожен тест заповнює таблиці своїми даними й порівнює результат вашого запиту з очікуваним: ті самі колонки (назви й порядок) і ті самі рядки в тому самому порядку, тож ORDER BY важливий. Запит виконується в справжньому PostgreSQL просто в браузері; перший запуск завантажує його (близько 5 МБ).

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