在SQL中按组计算移动平均数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL中按组计算移动平均数相关的知识,希望对你有一定的参考价值。
使用SQL,我可以计算出这样的移动平均线
SELECT id,date,var,AVG(var) OVER (ORDER BY UNIX_DATE(DATE(date)) RANGE BETWEEN 6 PRECEDING AND CURRENT ROW) AS var_mov_avg_7d
FROM table_name
WHERE id LIKE '2001'
但是,我怎样才能对表中的所有id分别进行计算呢?
答案
你想要的是 partition by
:
SELECT id,date,var,
AVG(var) OVER (PARTITION BY id
ORDER BY UNIX_DATE(DATE(date))
RANGE BETWEEN 6 PRECEDING AND CURRENT ROW
) AS var_mov_avg_7d
FROM table_name;
以上是关于在SQL中按组计算移动平均数的主要内容,如果未能解决你的问题,请参考以下文章