sql - BigQuery/Google Studio 问题:BigQuery 查询中相当复杂的数学运算
问题描述
我正在为我的社区开发一个 covid 仪表板: Chestertown 响应 我的挑战是计算 7 天移动平均线并在 Google Studios 页面上显示该信息。
我已经设法通过 Bigquery 使用以下代码进行计算(尽管它可能不像可能那样有效——抱歉):
--声明一些变量。声明 ConfirmedCases 数字;声明 DateOfAverage 日期时间;声明 mvgAvg 数值;声明 caseDiff 数字;声明乘数;
--get/set ConfirmedCases = (select covid.confirmed_cases FROM
bigquery-public-data.covid19_usafacts.summary
AS covid WHERE
County_fips_code = '24029' ORDER BY date DESC limit 1);--获取/设置最新日期。设置 DateOfAverage =(从
bigquery-public-data.covid19_usafacts.summary
covid WHERE
County_fips_code = '24029' ORDER BY date DESC limit 1 中选择日期);--get/set 7 天平均设置 mvgAVG = (select avg(Covid.confirmed_cases) over(order by Covid.confirmed_cases asc ROWS 7 PRECEDING) FROM
bigquery-public-data.covid19_usafacts.summary
AS covid WHERE
County_fips_code = '24029' ORDER BY date DESC limit 1);
--计算实际值和平均值之间的差异。设置 caseDiff = (select avg(Covid.confirmed_cases) over(按 Covid.confirmed_cases asc ROWS 7 PRECEDING 排序) - covid.Confirmed_cases frombigquery-public-data.covid19_usafacts.summary
AS covid WHERE
County_fips_code = '24029' ORDER BY date DESC limit 1); -- 设置乘数 set multiplier = 100;——做最后的数学。选择 caseDiff / ConfirmedCases * multiplier 作为结果;
我的问题: 认识到我有很多东西要学,并且在这个查询中肯定要清理一些东西,但是我在 Bigquery 中得到的结果是正确的,但我得到了:
- 查看结果
- 查看结果
- 查看结果
- 查看结果
最终的“查看结果”是我想要的答案。我怎样才能让这段代码只产生答案(类似于简单地从((表))运行选择((答案))。
解决方案
您定义OVER
标准的方式是错误的。以下内容应该可以帮助您更正确地对齐它。分区基本上是您希望如何分离数据以确定平均值,在您的情况下是县。并且您想要对ORDER BY
与您的用例(过去 7 天)一致的内容进行排序( )。因此,我们对 desc 进行排序以获取订单列表,以便查询可以提取最后 7 行,这些行将对应于最后 7 天。
另一方面,我认为有一个数据集具有每日增量,因此您不必对您在此查询中所做的事情做任何事情。
select *
, AVG(confirmed_cases) OVER (
PARTITION BY county_fips_code
ORDER BY date desc ROWS 7 PRECEDING
) as svn_day_del_avg
from `bigquery-public-data.covid19_usafacts.summary`
where county_fips_code = '24029'
order by date desc
推荐阅读
- regex - 正则表达式提取单词之前/之后的数字
- azure-ad-b2c - Azure B2C:“提供的 id_token 签名验证失败”
- ssl - 在 Helm 和 Tiller 之间设置 SSL
- python-3.x - 致命错误:C1083 无法打开包含文件“zlib.h”
- python - 无法从运行在 data proc 集群上的 jupyter notebook 读取谷歌云存储桶中的文件
- python - Tkinter - 返回选定树视图的列号
- php - WordPress 数据库错误:[列计数与第 1 行的值计数不匹配]
- c - 子进程内存分配和收获子进程的目的
- css - div内的白色CSS箭头
- r - R:每日累计总数