Google bigquery 在BigQuery中对日期进行分组时出现日期添加或日期差异错误

Google bigquery 在BigQuery中对日期进行分组时出现日期添加或日期差异错误,google-bigquery,bigquery-standard-sql,Google Bigquery,Bigquery Standard Sql,尽管我尝试着去搜索,但我仍然无法弄清楚这一点,尽管我帮了一点忙,我还是被卡住了。我试图将日期分为几周,但代码下面的两个错误中的任何一个都会出现 day bitcoin_total dash_total 2009-01-03 1 0 2009-01-09 14 0 2009-01-10 61 0 理想的结果是一周开始的日期可以是周一或周日,以两者中的任何一个为准 day bi

尽管我尝试着去搜索,但我仍然无法弄清楚这一点,尽管我帮了一点忙,我还是被卡住了。我试图将日期分为几周,但代码下面的两个错误中的任何一个都会出现

day         bitcoin_total   dash_total
2009-01-03  1               0
2009-01-09  14              0
2009-01-10  61              0
理想的结果是一周开始的日期可以是周一或周日,以两者中的任何一个为准

day         bitcoin_total   dash_total
2008-12-28  1               0
2009-01-04  75              0
这似乎是一个常见的问题,但大多数答案都是针对T-SQL的,而不是标准SQL。“我的日期”列的类型是date,但这是返回类型,因此这应该不是问题

DATE_ADD(week, DATE_DIFF(week, 0, day), 0) Date
FROM
my_table
GROUP BY
DATE_ADD(week, DATE_DIFF(week, 0, day), 0) 
ORDER BY
DATE_ADD(week, DATE_DIFF(week, 0, day), 0)

我得到了一个无法识别的名称:week at[2:10]错误与上述代码或错误:如果我将date_ADD函数中的date_表达式更改为,例如date 2009-01-01,以下是BigQuery标准SQL,则预期间隔表达式为[2:29]

#standardSQL
SELECT DATE_TRUNC(day, WEEK) AS day, 
  SUM(bitcoin_total) AS bitcoin_total, 
  SUM(dash_total) AS dash_total
FROM `project.dataset.table`
GROUP BY day   
如果要应用于问题中的样本数据,请参见下面的示例

#standardSQL
WITH `project.dataset.table` AS (
  SELECT DATE '2009-01-03' day, 1 bitcoin_total, 0 dash_total UNION ALL
  SELECT '2009-01-09', 14, 0 UNION ALL
  SELECT '2009-01-10', 61, 0 
)
SELECT DATE_TRUNC(day, WEEK) AS day, 
  SUM(bitcoin_total) AS bitcoin_total, 
  SUM(dash_total) AS dash_total
FROM `project.dataset.table`
GROUP BY day   
输出将是

Row day         bitcoin_total   dash_total   
1   2008-12-28  1               0    
2   2009-01-04  75              0    

如果回答有帮助的话,也要考虑投票:OI有。谢谢你的快速回复。只是想澄清一下,BigQuery标准SQL是它自己的语言吗?它基于SQL 2011标准,具有查询嵌套和重复数据的扩展以及其他许多功能。我正在搜索SQL 2011的解决方案,再次感谢。