Mysql 找到每天的平均值,如果当天没有记录,则取最新值

Mysql 找到每天的平均值,如果当天没有记录,则取最新值,mysql,Mysql,我不确定瓷砖是否正确或具体 我有一张这样的桌子: 2013-01-01 a: 100 2013-01-02 b: 50 2013-01-03 c: 75 b: 200 其中a、b、c用户ID 我需要一个将返回的查询: 2013-01-01 100 / 1 = 100 2013-01-02 (100 + 50) / 2 = 75 2013-01-03 (100 + 200 + 75) / 3 = 125 [2013-01-01100]、[2013-01-0275]、[2013-01-0

我不确定瓷砖是否正确或具体

我有一张这样的桌子:

2013-01-01
a: 100

2013-01-02
b: 50

2013-01-03
c: 75
b: 200
其中a、b、c用户ID

我需要一个将返回的查询:

2013-01-01
100 / 1 = 100

2013-01-02
(100 + 50) / 2 = 75

2013-01-03
(100 + 200 + 75) / 3 = 125
[2013-01-01100]、[2013-01-0275]、[2013-01-03125]]

似乎在某个特定日期我可以这样做:

SELECT AVG(column1) FROM table a 
  JOIN (
   SELECT MAX(date) AS max_date, user_id FROM table 
     WHERE date < "2013-09-01" GROUP BY user_id) b 
   ON b.user_id = a.user_id AND a.date = b.max_date;

如果需要每日平均值,则必须使用:

SELECT AVG(value)
FROM readings r
GROUP BY(date);

我不知道你为什么要在分析说明中计算当天的平均值。

为什么c不参加01-02,b和c不参加01-01?它们是否仅在首次出现后才对该平均值有效?所有的日期都保证在其中吗?没有没有没有任何记录的日期吗?@Wrikken,这是当前间隔日之前的最新条目。在01-03之前没有c,因此它不参与01-02。在01-02中没有A,所以我们从01-01.考虑提供适当的DDL和/或SqLFIDLE连同期望的结果集。
SELECT AVG(value)
FROM readings r
GROUP BY(date);