首页 > 解决方案 > BigQuery:如何使用应用于同一列的三个不同过滤器获取数据?

问题描述

我正在尝试在 bigquery 中获取以下条件的数据。1. Given_Day -> Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020') 2. last_year_same_day -> Calendar_Day = DATE_ADD(PARSE_DATE('%d/%m/%Y','14/10/2020'), INTERVAL -1 YEAR) 3. last_week_same_day ->Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020') - 7

上面的查询过滤器在单独使用时有效,但在Calendar_Day三个条件一起应用时会失败。

尝试查询:

select 
      Calendar_day,
      Sales,
      from `table`
      where
        Calendar_Day = DATE_ADD(PARSE_DATE('%d/%m/%Y','14/10/2020'), INTERVAL -1 YEAR)   #last_year_same_day
        and Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020') - 7   #last_week_same_day
        and Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020')   #today

需要解决方案。提前致谢!

标签: sqlfiltergoogle-bigquerydatefilter

解决方案


  where
    (Calendar_Day = DATE_ADD(PARSE_DATE('%d/%m/%Y','14/10/2020'), INTERVAL -1 YEAR))   #last_year_same_day
    OR (Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020') - 7)   #last_week_same_day
    OR (Calendar_Day = PARSE_DATE('%d/%m/%Y','14/10/2020'))   #today

推荐阅读