简体   繁体   English

BigQuery:如何使用应用于同一列的三个不同过滤器获取数据?

[英]BigQuery: How to get data with three different filters applied to same column?

I'm trying to get data for the following conditions in 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 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

Above query filter works when used individually, but fails when applied together as Calendar_Day equates three conditions.上述查询过滤器在单独使用时有效,但在一起应用时失败,因为Calendar_Day等同于三个条件。

Tried Query:尝试查询:

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

Need Solution.需要解决方案。 Thanks in Advance!提前致谢!

  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

I might suggest:我可能会建议:

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
                      )

I see no reason to parse a date from a non-standard format, if you are passing that value into a query.如果您将该值传递给查询,我认为没有理由从非标准格式解析日期。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何删除具有三个相同数据列和一个不同数据列的行 - How to delete the rows with three same data columns and one different data column 如何通过引用同一张表的不同列值获取数据 - How to get data by using different column values refrencing same table 将不同的独立过滤器应用于 GROUP BY 中的同一列 - Apply different independent filters to the same column in a GROUP BY 如何将数据从 BigQuery 移动到 BigQuery 中的同一数据库但架构不同? - How can I move data from BigQuery to same database in BigQuery but different schema? 如何针对不同的数据库执行具有不同列名的相同查询以获得单个结果/数据集 - How to execute same queries with different column names against different databases to get single result/data set 如何在不同的列中返回相同的数据? - How to return same data in different column? 如何通过公共列名在 BigQuery 中加入三个表 - How to JOIN three tables in BigQuery by a common column name SQL查询:如何从三个不同的表中获取数据 - SQL Query: How to get data from three different tables 如何从三个表中获取不同的数据? - how can i get different data from three tables? 能否在SQL查询中使用相同的列两次使用不同的过滤器? - Can I use same column twice with different filters in sql query?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM