Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在BigQuery中添加总行数的列_Sql_Date_Group By_Count_Google Bigquery - Fatal编程技术网

Sql 如何在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

我在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-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")