在BigQuery中按分组和左加入

时间:2018-07-17 14:31:56

标签: sql google-bigquery

我有两个表,如下所示:

Table 1

col1|col2|col3
A1  | 3  |  B1
A1  | 4  |  C1
A2  | 2  |  B1

Table 2

col1|col2|col3
A1  | 4  |  2
A1  | 5  |  3
A1  | 11 |  5
A2  | 0  |  10

只要Table 1中的col3大于{{1},我想对Table 2进行左联接并从col2聚合Table 2 },从col2开始,并且小于等于{{1}的+7,从Table 1开始。

结果将如下所示

col2

我有以下查询,但是我仅获得表1中约50%的记录,并且在适用的情况下看不到空值。 where子句似乎存在问题,但我不确定出什么问题。

Table 1

1 个答案:

答案 0 :(得分:2)

您应该像这样在join子句中移动where语句:

#standardSQL
select A.col1, A.col2, A.col3, sum(B.col3) as col4
from `Table 1` as A
left join `Table 2` as B
on A.col1 = B.col1
and B.col2 > A.col2 
and B.col2 <= A.col2+7
group by 1,2,3