我有两个表,如下所示:
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
答案 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