PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak utworzyć sumę kroczącą okresu rozliczeniowego

Znajomość bieżącej sumy odwiedzin, użytkowników lub działań w kroczącym okresie czasu to dobry sposób na analizę wydajności witryny lub aplikacji. Wyszukiwane hasło „12 Month Rolling report” ma ponad 12 milionów wyników wyszukiwania, a eksperci uważają, że raport kroczący jest jednym z najlepszych sposobów na pokazanie trendów. Zastąpienie okresu czasu widokiem rocznym lub 12-miesięcznym, w zależności od przypadku użycia, jest równie wnikliwe.

Na przykład analiza codziennych trendów odwiedzających witrynę w okresie sześciu miesięcy może pokazać cenne informacje, ale nie pokazuje trendów w mniejszych okresach w zakresie wykresu. Pokaże tylko ogólny trend.

Jeśli chcesz uzyskać wgląd w okresy wzrostu lub spadku, analiza trendów kroczących może pomóc w zidentyfikowaniu tych okresów. Poniższy wykres pokazuje te same dane, które widzieliśmy powyżej, ułożone w dziennym przedziale, w kroczącym formacie trendu 7-dniowego.

Dzięki temu 7-dniowemu okresowi kroczącemu możesz zobaczyć więcej niż tylko ogólny trend widoczny na dziennym wykresie liniowym. Tutaj możesz zobaczyć mikrotrendy w ogólnym doświadczeniu, które mogą ujawnić znacznie bardziej wnikliwe informacje dla Twojej organizacji. W naszym przykładzie widzimy, że ogólny trend odwiedzających w ciągu dnia na naszym pierwszym wykresie jest w górę, ale nasz drugi pokazuje kolejne 7 okresów w ramach naszego ogólnego trendu, które mają kierunek spadkowy. Tego rodzaju wgląd może pomóc nam zidentyfikować okresy trendu spadkowego, które mogą zbiegać się z działaniami marketingowymi, które albo się sprawdziły, albo nie.

Zapytanie

Aby zbudować to zapytanie, będziemy chcieli wiedzieć kilka rzeczy:

  1. Okres toczenia. Przykład 12 miesięcy, 30 dni lub 7 dni. W naszym przypadku:7 dni.
  2. Dane, które analizujemy:liczba odwiedzających dziennie.

Zapytanie będzie składało się z różnych podzapytań. Najpierw użyj generate_series , aby przypisać wiersze w tabeli dla wszystkich dat w zakresie dat od początku do końca zakresu dat w kolumnie visitd.created_date , która zostanie wywołana w głównej instrukcji SELECT. To podzapytanie będzie służyć jako tabela, z której będziemy wybierać.

Drugie podzapytanie przejdzie do sekcji głównej i zwróci liczbę wszystkich unikalnych użytkowników, którzy odwiedzili naszą witrynę w okresie 7 dni. To podzapytanie będzie służyć jako osobna kolumna w głównym zapytaniu i będzie liczyć różnych użytkowników od „dnia” do 7 dni przed „dniem”.

Łącząc to wszystko razem, możemy wygenerować kroczący trend naszych odwiedzających dziennie w okresie 7 dni:

    SELECT
        day,
        (
          SELECT
              COUNT(DISTINCT "Visitors"."visitor_id") AS "Visitors"
          FROM
              "public"."visitors" AS "Visitors"
          WHERE  
              "Visitors"."created_date" BETWEEN b.day - 7 AND b.day + 1
        )
    FROM  (SELECT
            generate_series(
                            MIN(DATE_TRUNC('day', "Visitors"."created_date")::DATE),
                            MAX(DATE_TRUNC('day', "Visitors"."created_date")::DATE),
                            '1d')::date as day
            FROM "public"."visitors" AS "Visitors"
          ) as b
    GROUP BY day                        
    ORDER BY day

Testowanie matematyki. Możemy przetestować matematykę w poniższej tabeli. Zobacz kroki opóźnienia, które przypisują poprzednie 7 dni do kolumny Liczby, oraz kolumnę sumy, która będzie równa kolumnie Goście.

Po potwierdzeniu naszej matematyki możemy ufać, że ta funkcja zapewni nam ogólny widok bieżących sum kroczących okresów. Powyższe zapytanie można dostosować, aby pokazywało różne okresy w zależności od przypadku użycia.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa pg_typeof() w PostgreSQL

  2. Połącz się z bazą danych heroku za pomocą pgadmin

  3. Przegląd pgModeler dla PostgreSQL

  4. Połącz zapytania z zagnieżdżoną pętlą z wynikiem tablicy nadrzędnej — pg-promise

  5. Mieszanie sprzężeń jawnych i niejawnych kończy się niepowodzeniem z Istnieje wpis dla tabeli ... ale nie można się do niego odwoływać z tej części zapytania