【问题标题】:Bigquery replacing empty results or null values with some 000Bigquery 用一些 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

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

【问题讨论】:

    标签: google-bigquery


    【解决方案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
    

    【讨论】:

    • ..它奏效了。但是希望有一种方法可以在不使用生成数组的情况下获得所需的输出,因为它涉及手动提供日期。 .
    猜你喜欢
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2012-08-13
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2018-04-15
    相关资源
    最近更新 更多