Database
 sql >> Baza danych >  >> RDS >> Database

Jak obliczyć sumę biegową w przesunięciu ku czerwieni?

Suma skumulowana, znana również jako suma bieżąca, to przydatna metryka kluczowego wskaźnika wydajności do monitorowania łącznych wartości w czasie. Jeśli twoje dane są przechowywane w Amazon Redshift, dość łatwo jest obliczyć skumulowaną sumę w Redshift. Zobaczmy, jak obliczyć sumę biegową w Redshift.

Jak obliczyć sumę bieżącą w przesunięciu ku czerwieni

Oto kroki, aby obliczyć sumę biegową w funkcji Redshift. Załóżmy, że masz poniższą tabelę zawierającą dzienną sprzedaż

postgres-#> create table sales(order_date date,sale int);

postgres-#> insert into sales values('2020-03-01',30),
('2020-03-02',35),('2020-03-03',25),('2020-03-04',40),('2020-03-05',30);

postgres-#> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-03-01 |   30 |
| 2020-03-02 |   35 |
| 2020-03-03 |   25 |
| 2020-03-04 |   40 |
| 2020-03-05 |   30 |
+------------+------+

Załóżmy, że chcesz obliczyć skumulowaną sumę sprzedaży, w ten sposób

+------------+------+-----------------+
| order_date | sale | cumulative_sale |
+------------+------+-----------------+
| 2020-03-01 |   30 |              30 |
| 2020-03-02 |   35 |              65 |
| 2020-03-03 |   25 |              90 |
| 2020-03-04 |   40 |             130 |
| 2020-03-05 |   30 |             160 |
+------------+------+-----------------+

Oto zapytanie SQL do obliczenia sumy bieżącej w funkcji Redshift. Ponieważ Redshift jest w zasadzie PostgreSQL, wszystkie jego funkcje i wyrażenia są dostępne w PostgreSQL. W tym celu użyjemy funkcji Window, dostępnej w PostgreSQL.

postgres=# SELECT order_date
          , sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
          FROM   sales
          ORDER  BY order_date;

 order_date | sum
------------+-----
 2020-03-01 |  30
 2020-03-02 |  65
 2020-03-03 |  90
 2020-03-04 | 130
 2020-03-05 | 160

Przyjrzyjmy się szczegółowo powyższemu zapytaniu. Powyższa funkcja SUMA oblicza skumulowaną sumę dla każdego wiersza. Jednak używamy funkcji okna OVER, która pomaga nam zdefiniować liczbę wierszy, które mają być użyte do obliczenia sumy bieżącej w funkcji Redshift.

Przeczytaj bonus:Jak obliczyć średnią kroczącą w przesunięciu ku czerwieni

Najpierw sortujemy nasze dane chronologicznie według data_zamówienia aby upewnić się, że zsumujemy właściwe wiersze dla każdej sumy skumulowanej. Następnie dla każdego wiersza informujemy Redshift, aby zsumował sprzedaż kolumna dla wszystkich poprzednich wierszy. Robimy to za pomocą funkcji okna OVER i wspominamy wiersze między nieograniczonym poprzednim i bieżącym wierszem . Oznacza to, że dla każdego wiersza rozważ tylko poprzednie wiersze jako sumę skumulowaną.

Gdy ramka okna zmienia się dla każdego wiersza, tylko poprzednie wiersze zostaną użyte do obliczenia sumy bieżącej.

Jeśli chcesz filtrować dane przed obliczeniem sumy bieżącej w Redshift, możesz to zrobić, dodając klauzulę WHERE, jak pokazano poniżej.

postgres=# SELECT order_date
          , sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
          FROM   sales
          ORDER  BY order_date
          WHERE <condition>;

Przeczytaj bonus: Jak utworzyć tabelę przestawną w PostgreSQL

Ponadto, ponieważ Redshift jest w zasadzie PostgreSQL, możesz również użyć powyższego zapytania do obliczenia sumy bieżącej w PostgreSQL.

Po obliczeniu skumulowanej sumy w funkcji Redshift możesz użyć narzędzia do wizualizacji danych Redshift, aby wykreślić ją na wykresie liniowym. Oto przykład wykresu liniowego dla skumulowanej sumy, utworzonego za pomocą Ubiq.

Jeśli chcesz tworzyć wykresy i pulpity nawigacyjne z bazy danych Redshift, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Model bazy danych dla systemu komunikacyjnego

  2. Korzystanie z danych chronionych za pomocą Azure Key Vault z systemu Linux

  3. 2013 MVP Summit:krótki przegląd i spojrzenie w przód

  4. Zapytanie SQL do porównania sprzedaży produktów według miesiąca

  5. Schemat gwiazdy kontra schemat płatka śniegu