mysql - 如何在 MySQL 8 中使用两个变量进行滚动平均?
问题描述
我试图弄清楚如何在日期和状态上进行滚动平均。
下面的查询仅给出了 COVID 病例正增长的平均值,但没有按州细分。
我找不到任何扩展下面的查询逻辑以按日期+状态进行滚动平均的示例(抱歉,如果我错过了)。
提前致谢。
SELECT
date,
state,
positiveIncrease,
AVG( positiveIncrease ) OVER ( ORDER BY date DESC RANGE INTERVAL 3 DAY PRECEDING ) AS rolling_average
FROM
`covid-history`
ORDER BY
date DESC
解决方案
只需在窗口函数state
的partition by
子句中添加:
AVG(positiveIncrease) OVER (
PARTITION BY state -- partition clause
ORDER BY date DESC
RANGE INTERVAL 3 DAY PRECEDING
) AS rolling_average
推荐阅读
- android - BLE 支持的安卓手机
- java - 是否最好传递整个对象或调用它的方法并传递返回值?
- llvm - 在某些函数 llvm 中查找局部变量
- ios - 此代码的 viewDidLoad vs viewWillAppear vs viewDidAppear 部分
- optimization - ARM 设备中的 SRAM 使用优化
- r - 使用来自另一个数据框的匹配重命名数据框列表中的列
- java - 如何使用 jdbc java 创建临时表
- javascript - 由于新功能“从上次中断的地方继续”,Chrome 浏览器无法清除 PHP 会话
- python - 为什么 norm.cdf 在 scipy 中比 norm.pdf 快?
- java - 当我调用 timetabledropdown 时,我收到此错误回调错误