【问题标题】:Using Bigquery Table wildcards with relative date range and Standard SQL [duplicate]使用具有相对日期范围和标准 SQL 的 Bigquery Table 通配符 [重复]
【发布时间】:2017-07-12 20:31:00
【问题描述】:

我经常使用旧版 SQL 在 bigquery 中对过去 N 天(通常为 14 或 30 天)的数据运行查询,如下所示:

  SELECT
    …
  FROM
    TABLE_DATE_RANGE([XXX_], DATE_ADD(CURRENT_TIMESTAMP(), -30, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0, 'DAY'))
  WHERE
    …

我想将此查询切换为使用标准 SQL 而不是旧版 SQL。我知道如何使用通配符来表达XXX_YYYYMMDD,我也知道如何用XXX_2017* 之类的东西来表达特定的日期范围,但我不知道如何表达过去30 天等相对范围。

如何将上述查询转换为标准 SQL?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    看看这是否适合你:

    SELECT 
      date
    FROM `dataset.table_*`
    WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)) AND FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))
    GROUP BY date
    ORDER BY DATE
    

    本示例中的通配符选择格式为"%Y%m%d" 的日期。您可以选择更适合您的通配符选择的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多