Sql 如何在BigQuery中添加总行数的列
我在BigQuery中有一个表,其中保存了日期戳和温度传感器值。 我通常按日期过滤查询。 我的目标是在这个查询中添加一列,其中包含行的总数 例如,如果运行此查询,则会得到以下结果:Sql 如何在BigQuery中添加总行数的列,sql,date,group-by,count,google-bigquery,Sql,Date,Group By,Count,Google Bigquery,我在BigQuery中有一个表,其中保存了日期戳和温度传感器值。 我通常按日期过滤查询。 我的目标是在这个查询中添加一列,其中包含行的总数 例如,如果运行此查询,则会得到以下结果: SELECT DATESTAMP, Temperature FROM `my_project.my_folder.my_table` WHERE DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000") AND TIMESTAMP("2020
SELECT DATESTAMP, Temperature
FROM
`my_project.my_folder.my_table`
WHERE
DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000")
AND TIMESTAMP("2020-02-06 00:00:00.00")
SELECT count(*) AS num_total
FROM
`my_project.my_folder.my_table`
WHERE
DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000")
AND TIMESTAMP("2020-02-06 00:00:00.00")
当我运行此查询时,我得到以下结果:
SELECT DATESTAMP, Temperature
FROM
`my_project.my_folder.my_table`
WHERE
DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000")
AND TIMESTAMP("2020-02-06 00:00:00.00")
SELECT count(*) AS num_total
FROM
`my_project.my_folder.my_table`
WHERE
DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000")
AND TIMESTAMP("2020-02-06 00:00:00.00")
我的目标是编写查询程序并接收此结果
ROW DATESTAMP Temperature num_total
1 2020-02-05 06:44:37 UTC 15.14 4
2 2020-02-05 09:41:11 UTC 18.25 4
3 2020-02-05 12:11:25 UTC 21.21 4
4 2020-02-05 22:15:37 UTC 14.65 4
我该怎么做?您可以进行窗口计数:
SELECT datestamp, Temperature, COUNT(*) OVER() num_total
FROM `my_project.my_folder.my_table`
WHERE
datestamp >= TIMESTAMP("2020-02-05 00:00:00.000")
AND datestamp < TIMESTAMP("2020-02-06 00:00:00.000")
选择日期戳、温度、计数(*)除以()总数
从“我的项目.我的文件夹.我的表格”`
哪里
日期戳>=时间戳(“2020-02-05 00:00:00.000”)
邮戳<时间戳(“2020-02-06 00:00:00.000”)
请注意,我重新编写了日期过滤器,以使用半个打开间隔,而不是之间的间隔:很可能,您不希望上限包含在日期范围内。这是一个选项
SELECT DATESTAMP
, Temperature
, (select count(*) from `my_project.my_folder.my_table`) as num_total
FROM `my_project.my_folder.my_table`
WHERE DATESTAMP BETWEEN TIMESTAMP("2020-02-05 00:00:00.000")
AND TIMESTAMP("2020-02-06 00:00:00.00")