MYSQL分组求平均值问题

q_kang 2019-05-25 01:39:23
请教大神,对MYSQL数据表TMPtable,想针对name 列,计算每5天的平均值,代码如下,但计算后一直为NULL,代码哪里错了?

SELECT b.*,
(
SELECT avg(t1.`close`) from (
SELECT t.*,(@rownum := @rownum + 1) AS rownum FROM (SELECT @rownum := 0) r,`TMPtable` t ORDER BY `name`,`index` asc) t1
WHERE t1.rownum <= b.rownum + 5 and t1.rownum > b.rownum
)avg5
from
( select b.*,(@rownum := @rownum + 1) AS rownum FROM (SELECT @rownum := 0) r,`TMPtable` b ORDER BY `name`,`index` asc) b



计算前:

计算后:



...全文
915 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
带我飞的云 2019-05-28
  • 打赏
  • 举报
回复
SQL 好复杂,没看太懂 我的思路是这样的: 先把时间取出前5天的数据,然后再按name进行分组取平均值,不过要看你数据的要求: 1. 是不是每天都有数据? SELECT name, avg(close) FROM TMPtable WHERE index >= SUBDATE(CURDATE(), INTERVAL 5 DAY) GROUP BY name
q_kang 2019-05-25
  • 打赏
  • 举报
回复
目标:根据name列分组计算close列前5天的平均值

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧