Google cloud platform 正在取消BigQuery中可能包含null元素的列的测试

Google cloud platform 正在取消BigQuery中可能包含null元素的列的测试,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,查询生成的结果 查询生成的结果 这个结果的问题是:对于num=6,我没有嵌套列, 因此,当我取消嵌套列时,它会完全删除num=6的行,这将在我要计算发生的总成本时产生差异 感谢您的帮助 使用左连接而不是,(这是交叉连接的缩写): 使用左连接代替,(这是交叉连接的缩写): with a1 as ( select 1 as num, [1,2] as nested, 2 as cost ), a2 as ( select 2 as num, [4,7] as nest

查询生成的结果

查询生成的结果

这个结果的问题是:对于num=6,我没有嵌套列, 因此,当我取消嵌套列时,它会完全删除num=6的行,这将在我要计算发生的总成本时产生差异


感谢您的帮助

使用
左连接
而不是
(这是
交叉连接
的缩写):


使用
左连接
代替
(这是
交叉连接
的缩写):

with a1 as (
  select 1 as num,
    [1,2] as nested,
    2 as cost
),
a2 as (
  select 2 as num,
  [4,7] as nested,
  2 as cost
),
a3 as (
  select 3 as num,
  [9,8] as nested,
  2 as cost
),
a4 as (
  select 4 as num,
  [4, 6, 8] as nested,
  2 as cost
),
a5 as (
  select 5 as num,
  [19, 11] as nested,
  2 as cost
),
a6 as (
  select 6 as num,
  [] as nested,
  2 as cost
),
table as(
 select * from a1
 union all
 select * from a2
  union all
 select * from a3
  union all
 select * from a4
  union all
 select * from a5
  union all
 select * from a6
) 
select * except(nested)
from table, unnest(nested) as unnested
select num, count(unnested) as count, max(cost) as cost_incurred
from table, unnest(nested) as unnested
group by num
select * except(nested)
from table left join unnest(nested) as unnested

select num, count(unnested) as count, max(cost) as cost_incurred
from table left join unnest(nested) as unnested
group by num