Obliczanie SQL-Wagon

Obliczanie SQL Październik 20, 2015 | Andy Granowitz

#sql

ilu użytkowników dołączyło w ciągu ostatnich 5 miesięcy? Jaka była łączna sprzedaż w II kwartale? Ile przychodu pochodziło z marszowej kohorty?

chociaż na te pytania można odpowiedzieć pojedynczym numerem, przydatne może być zobaczenie sumy bieżącej w czasie: ilu unikalnych użytkowników dołączyło lub ile skumulowanych przychodów zostało otrzymanych w ciągu dnia w pewnym okresie.

Zazwyczaj dane są przechowywane stopniowo. Na przykład, oto tabela sprzedaży dziennie:

Date Sales
10/1/2015 5
10/2/2015 3
10/3/2015 7
10/4/2015 8
10/5/2015 2
10/6/2015 3
10/7/2015 6

How do we generate the following table of cumulative sales over time? In SQL, there are two typical approaches: a self join or a window function.

Date Running Total of Sales
10/1/2015 5
10/2/2015 8
10/3/2015 15
10/4/2015 23
10/5/2015 25
10/6/2015 28
10/7/2015 34

A self join is a query that compares a table to itself. W tym przypadku porównujemy każdą datę z dowolną datą mniejszą lub równą, aby obliczyć sumę bieżącą. Konkretnie, bierzemy sumę sales w drugiej tabeli nad każdym wierszem, który ma datę mniejszą lub równą dacie pochodzącej z pierwszej tabeli. Jest to składnia Postgres/Redshift, ale inne dialekty SQL są bardzo podobne.

to nie jest złe podejście; jest to miła prezentacja tego, jak rozszerzalny SQL może używać tylkoselectfromjoin Igroup by.

ale to dużo kodu do prostego zadania. Spróbujmy funkcji okna. Są one przeznaczone do obliczania metryki na zbiorze wierszy. W naszym przypadku chcemy zsumować każdy wiersz, w którym Data jest mniejsza lub równa dacie w bieżącym wierszu.

funkcja okna może filtrować i układać zestaw wierszy, aby uruchomić funkcję. Tutaj order by date rows unbounded preceding ogranicza funkcję sumy tylko do sales przed datą bieżącego wiersza. Funkcje okna są niezwykle przydatne dla zapytań analitycznych opartych na czasie; aby dowiedzieć się więcej, dokumenty Postgres są doskonałym miejscem, aby zacząć.

ostatni krok tworzenia wykresu i dzielenia się nim triumfalnie z kolegami z Drużyny można łatwo osiągnąć za pomocą Wagon. Funkcje okna dla wygranej!

Wagon to nowoczesny edytor SQL dla analityków i inżynierów: pisz zapytania, wizualizuj Dane i udostępniaj wykresy zespołowi. Zarejestruj się za darmo:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *