Sql 如何计算BigQuery中每天添加的记录的平均数量。?

Sql 如何计算BigQuery中每天添加的记录的平均数量。?,sql,google-bigquery,Sql,Google Bigquery,我在BigQuery中有一个表,其中有一列Published\u date,数据类型为“Timestamp”。我想计算该表中每天(特定月份)添加的行的平均数量。我有以下疑问 SELECT AVG(Num_Rows) FROM (SELECT [Day]=DAY( Published_Date ), Num_Rows=COUNT(*) FROM `mytable` WHERE Published_Date BETWEEN '20190729' AND '20190729 ' GROUP BY D

我在
BigQuery
中有一个表,其中有一列Published\u date,数据类型为“Timestamp”。我想计算该表中每天(特定月份)添加的行的平均数量。我有以下疑问

SELECT AVG(Num_Rows) 
FROM (SELECT [Day]=DAY( Published_Date ), Num_Rows=COUNT(*)
FROM `mytable`
WHERE Published_Date BETWEEN '20190729' AND '20190729 '
GROUP BY DAY( Published_Date ) ) AS Z
但它会产生以下错误

无法将文字“20190729”强制转换为类型时间戳


我应该如何处理时间戳,因为我只需要来自
timestamp
列的日期

使用显式转换:

WHERE Published_Date BETWEEN TIMESTAMP('2019-07-29') AND TIMESTAMP('2019-07-29')
请注意,您有一个名为“_date”的列,但错误是该值是一个时间戳。我觉得这令人困惑。我们在
时间戳
的列中使用
\ts
(对于
日期时间
使用
\dt
,对于
日期
使用
\date

为什么这很重要?时间戳是UTC。因此,您可能需要注意时区和时间组件——这在名为
Publish\u Date
的专栏中并不明显

我想计算该表中每天(特定月份)添加的行的平均数量

下面是BigQuery标准SQL的示例

#standardSQL
SELECT AVG(Num_Rows) AS avg_rows_per_day
FROM (
  SELECT DATE(Published_Date) AS day, COUNT(*) AS Num_Rows
  FROM `project.dataset.mytable`
  WHERE DATE(Published_Date) BETWEEN '2019-07-01' AND '2019-07-31'
  GROUP BY day
) 

非常感谢。但是,我将如何按天分组?…我使用了您提到的显式转换,但现在它生成了以下错误..在我的查询的第2行中出现了“无法识别的名称:天..我应该如何处理它?”2019-10-21 17:31:00 UTC“这是列值的样子..我应该如何按天分组?。因为我想要一个月内每天增加的行数…@MuhammadAqeel。使用
DATE()
而不是
DAY()