BigQuery:如何使用应用于同一列的三个不同过滤器来获取数据?
BigQuery: How to get data with three different filters applied to same column?
我正尝试在 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
需要解决方案。提前致谢!
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
我可能会建议:
where Calendar_Day in (date('2020-10-14'),
date_add(date('2020-10-14'), interval -1 week,
date_add(date('2020-10-14'), interval -1 year
)
如果您将该值传递给查询,我认为没有理由解析非标准格式的日期。
我正尝试在 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
需要解决方案。提前致谢!
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
我可能会建议:
where Calendar_Day in (date('2020-10-14'),
date_add(date('2020-10-14'), interval -1 week,
date_add(date('2020-10-14'), interval -1 year
)
如果您将该值传递给查询,我认为没有理由解析非标准格式的日期。