Sql-Wagon

sql 을 사용하여 실행 합계 계산 2015 년 10 월 20 일|Andy Granowitz

#sql

지난 5 개월 동안 몇 명의 사용자가 가입 했습니까? 2 분기 총 매출은 무엇 이었습니까? 3 월 가입 코호트에서 얼마나 많은 수익이 발생 했습니까?

이 질문에 대답할 수 있습니다 하나의 숫자로,그것은을 확인하는 것이 유용할 수 있습는 실행하는 총 시간:는 방법은 사용자가 합류 또는 누적 매출를 받은 날을 통해 일정 기간 동안.일반적으로 데이터는 점진적으로 저장됩니다. 예를 들어 다음은 하루 매출 표입니다:

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. 이 경우 실행중인 총계를 계산하기 위해 각 날짜보다 작거나 같은 날짜와 비교하고 있습니다. 구체적으로,우리 합의sales에서 두 번째 테이블 위에 모든 행하는 날보다 작거나 같은 날짜에서 나오는 첫 테이블. 이것은 Postgres/Redshift 구문이지만 다른 SQL 방언은 매우 유사합니다.

이것은 나쁜 방법;그것은 좋은 선보일 방법의 확장 가능한 SQL 사용할 수 있습만selectfromjoin,andgroup by문입니다.그러나 간단한 작업을위한 많은 코드입니다. 창 기능을 사용해 봅시다. 이들은 일련의 행을 통해 메트릭을 계산하도록 설계되었습니다. 우리의 경우 날짜가 현재 행의 날짜보다 작거나 같은 모든 행을 합산하려고합니다.

창 함수는 함수를 실행할 행 집합을 필터링하고 정렬 할 수 있습니다. 여기서order by date rows unbounded precedingsales로 제한합니다. 창 함수는 시간 기반 분석 쿼리에 매우 유용합니다; 자세히보기,포스트 그레스 문서는 시작하기에 좋은 장소입니다.

차트를 작성하고 팀원들과 의기 양양하게 공유하는 마지막 단계는 왜건을 사용하여 쉽게 수행 할 수 있습니다. 승리를위한 창 기능!

왜건은 현대적인 SQL 편집기를 분석하고 엔지니어:쿼리를 작성,데이터 시각화,그리고 공유 차트 팀과 함께. 무료 가입:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다