Calcularea totalurilor de rulare folosind SQL-Wagon

calcularea totalurilor de rulare folosind SQL 20 octombrie 2015 | Andy Granowitz

#sql

câți utilizatori s-au alăturat în ultimele 5 luni? Care au fost vânzările totale în T2? Cât de multe venituri au venit din cohorta de înscriere în martie?

deși la aceste întrebări se poate răspunde cu un singur număr, poate fi util să vedem un total de funcționare în timp: câți utilizatori unici s-au alăturat sau cât de multe venituri cumulate au fost primite pe zi într-o anumită perioadă.

De obicei, datele sunt stocate incremental. De exemplu, iată un tabel de vânzări pe zi:

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. În acest caz, comparăm fiecare dată cu orice dată mai mică sau egală cu aceasta pentru a calcula totalul de rulare. În mod concret, luăm suma sales în al doilea tabel peste fiecare rând care are o dată mai mică sau egală cu data care vine din primul tabel. Aceasta este sintaxa Postgres/Redshift, dar alte dialecte SQL sunt foarte asemănătoare.

aceasta nu este o abordare proastă; este o prezentare frumoasă a modului în care SQL extensibil poate folosi doarselectfromjoin șigroup by declarații.

dar este o mulțime de cod pentru o sarcină simplă. Să încercăm o funcție de fereastră. Acestea sunt concepute pentru a calcula o metrică pe un set de rânduri. În cazul nostru, dorim să însumăm fiecare rând în care data este mai mică sau egală cu data din rândul curent.

funcția fereastră poate filtra și aranja setul de rânduri pentru a rula funcția. Aici order by date rows unbounded precedinglimitează funcția sum la numaisales înainte de data rândului curent. Funcțiile ferestrei sunt incredibil de utile pentru interogările analitice bazate pe timp; pentru a afla mai multe, Postgres docs sunt un loc minunat pentru a începe.

pasul final de a crea o diagramă și de a o împărtăși triumfător cu colegii de echipă este ușor de realizat folosind Wagon. Funcții fereastră pentru victorie!

Wagon este un editor SQL modern pentru analiști și ingineri: scrieți interogări, vizualizați date și partajați diagrame cu echipa dvs. Inscriere gratuita:

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *