BigQuery条件运行总和

时间:2018-07-24 16:18:07

标签: google-bigquery

使用SQL(标准BigQuery),我需要计算最近4周销售的运行平均值,其中标志为FALSE。平均值实际上是一个基准,因此不包括本周的销售额。

week    flag    sales
1       FALSE   3
2       FALSE   1
3       FALSE   3
4       FALSE   0
5       FALSE   3
6       FALSE   6
7       TRUE    3
8       TRUE    1
9       FALSE   3
10      FALSE   9
11      FALSE   6
12      FALSE   4
13      TRUE    4
14      TRUE    2
15      FALSE   1

例如,第6周的(week2 + week3 + week + week5)/ 4 =(1 + 3 + 0 + 3)/4=7/4=1.75。 例如,对于第10周,由于flag为true,因此运行平均值不应包括第7周和第8周。第10周应该是(week4 + week + 5 + week6 + week9)/ 4 = 3

整个桌子都应该

week    avg
1       NULL
2       NULL
3       NULL
4       NULL
5       1.75
6       1.75
7       3
8       3
9       3
10      3
11      5.25
12      6
13      5.5
14      5.5
15      5.5

我一直在努力扩大答案 SQL Select Statement For Calculating A Running Average Column

谢谢, 吉姆

1 个答案:

答案 0 :(得分:2)

以下是用于BigQuery标准SQL

   
int size = people.getPeople()
.parallelStream()
.mapToInt(p -> p.getFriends().size())
.max().orElse(0);