如何在 MySQL 8 中使用两个变量进行滚动平均?
Posted
技术标签:
【中文标题】如何在 MySQL 8 中使用两个变量进行滚动平均?【英文标题】:How to do a rolling average in MySQL 8 with two variables? 【发布时间】:2020-06-25 12:44:19 【问题描述】:我正在尝试弄清楚如何在日期和状态之间进行滚动平均。
下面的查询仅给出了 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
【问题讨论】:
【参考方案1】:只需将state
添加到窗口函数的partition by
子句中即可:
AVG(positiveIncrease) OVER (
PARTITION BY state -- partition clause
ORDER BY date DESC
RANGE INTERVAL 3 DAY PRECEDING
) AS rolling_average
【讨论】:
非常感谢!仍在学习新的 mysql 8 东西。 :)以上是关于如何在 MySQL 8 中使用两个变量进行滚动平均?的主要内容,如果未能解决你的问题,请参考以下文章
使用 data.table 包滚动平均值到 R 中的多个变量