請教大神,對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
計算前:

計算后:

uj5u.com熱心網友回復:
目標:根據name列分組計算close列前5天的平均值uj5u.com熱心網友回復:
SQL 好復雜,沒看太懂我的思路是這樣的:
先把時間取出前5天的資料,然后再按name進行分組取平均值,不過要看你資料的要求:
1. 是不是每天都有資料?
SELECT name, avg(close)
FROM TMPtable
WHERE index >= SUBDATE(CURDATE(), INTERVAL 5 DAY)
GROUP BY name
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/60905.html
標籤:MySQL
上一篇:新手求解 為啥派生起名報錯
