Google cloud platform 正在取消BigQuery中可能包含null元素的列的测试
查询生成的结果 查询生成的结果 这个结果的问题是:对于num=6,我没有嵌套列, 因此,当我取消嵌套列时,它会完全删除num=6的行,这将在我要计算发生的总成本时产生差异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
感谢您的帮助 使用
左连接
而不是,
(这是交叉连接
的缩写):
使用
左连接
代替,
(这是交叉连接
的缩写):
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