Bigquery 用一些 000 替换空结果或空值

Posted

技术标签:

【中文标题】Bigquery 用一些 000 替换空结果或空值【英文标题】:Bigquery replacing empty results or null values with some 000 【发布时间】:2021-01-04 08:48:41 【问题描述】:

我看到一些日期数据不存在,现在对于数据不存在的日期,我想用零替换它而不是找不到结果。我尝试如下并得到了当前的输出

选择 trvl_details.strt_dte 作为 cre_dte, trvl_typ_cde, 合并(计数(1),0)作为创建计数 从 project.dataset.tableid 加入 UNNEST(trvl_details)trvl_details WHERE trvl_details.strt_dte >= "2020-12-24" and trvl_typ_cde='AIR' group by 1,2

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

您可以使用GENERATE_DATE_ARRAY 创建日期列表,然后将生成的日期列表与您的结果一起加入:

WITH your_data AS (
  select trvl_details.strt_dte as cre_dte, trvl_typ_cde, coalesce(count(1),0) as createdcount 
  from project.dataset.tableid JOIN UNNEST(trvl_details)trvl_details 
  WHERE trvl_details.strt_dte >= "2020-12-24" and trvl_typ_cde='AIR' 
  group by 1,2
)
SELECT day, your_data.trvl_typ_cde, IFNULL(your_data.createdcount, 0)
FROM UNNEST(GENERATE_DATE_ARRAY('2020-12-01', '2020-12-31')) as day 
LEFT JOIN your_data 
ON day = your_data.cre_dte

【讨论】:

..它奏效了。但是希望有一种方法可以在不使用生成数组的情况下获得所需的输出,因为它涉及手动提供日期。 .

以上是关于Bigquery 用一些 000 替换空结果或空值的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Hashtable 不允许空键或空值?

如何在 BigQuery 中将多个列的空值替换为 0?

使用 spark 用下一行值填充 null 或空

BigQuery - 加载具有空值的 JSON 字段

使用javascript对数组进行排序而不改变空或空的地方

如何根据同一张表中的其他列匹配替换空值