Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Mysql 如何在谷歌大查询中求和月份?_Mysql_Sql_Google Bigquery - Fatal编程技术网

Mysql 如何在谷歌大查询中求和月份?

Mysql 如何在谷歌大查询中求和月份?,mysql,sql,google-bigquery,Mysql,Sql,Google Bigquery,我正在使用Google Big Query,并尝试对每个月的数据进行汇总(每天都会给出) 但它仍然显示每个月30行,这让我相信它不是对月份进行求和,而是一个数据一个数据给我。我会使用TRUNC函数吗?问题是这个数据集中日期的列标签是date,所以如果date既是一个列名又是一个变量,我不知道如何TRUNC(MONTH as date) 感谢您的帮助 谢谢,, Yoni首先,我建议缩短日期。然后: SELECT date_trunc(date, month) as month, region_na

我正在使用Google Big Query,并尝试对每个月的数据进行汇总(每天都会给出)

但它仍然显示每个月30行,这让我相信它不是对月份进行求和,而是一个数据一个数据给我。我会使用TRUNC函数吗?问题是这个数据集中日期的列标签是date,所以如果date既是一个列名又是一个变量,我不知道如何TRUNC(MONTH as date)

感谢您的帮助

谢谢,,
Yoni

首先,我建议缩短日期。然后:

SELECT date_trunc(date, month) as month, region_name, 
       avg(stringency_index) as stringency_index,
       sum(deaths) as deaths
FROM `bigquery-public-data.covid19_govt_response.oxford_policy_tracker`
WHERE stringency_index is not null and 
      region_name IN ('New York', 'Florida') AND
       date BETWEEN '2020-05-01' AND '2020-12-30'
GROUP BY region_name, month
ORDER BY month;

查询的问题是,您正在按日期进行聚合。您可以通过按月聚合来修复它;我认为完整的日期更安全——尽管新冠病毒数据已经整整一年没有存在了,所以现在,你不必担心不同年份的月份数据。

MySQL与BigQuery不同,你的问题是,
groupby
是按日期分组的,而不是按月份分组的。尝试
按摘录分组(从日期算起的月份)
以保持一致。@yonikasz,我已经测试了Gordon的解决方案,它回答了您的问题。请考虑他的回答,这有助于其他社区成员在面对同样的问题时找到答案。
SELECT date_trunc(date, month) as month, region_name, 
       avg(stringency_index) as stringency_index,
       sum(deaths) as deaths
FROM `bigquery-public-data.covid19_govt_response.oxford_policy_tracker`
WHERE stringency_index is not null and 
      region_name IN ('New York', 'Florida') AND
       date BETWEEN '2020-05-01' AND '2020-12-30'
GROUP BY region_name, month
ORDER BY month;