我的问题:我有价格和日期的表。我需要有最近7天的平均价格。例如:我有今天,昨天,30天前,43天前的价格,等等。我需要的不是过去7天的平均价格,而是过去7天的平均价格。

我的代码:

SELECT AVG(price)
FROM table
GROUP BY date
ORDER BY date DESC LIMIT 7


但是我每天有7个平均价格。
也许有人有另一个主意

最佳答案

使用子查询获取现有的最近7天,获取最早的日期,然后对该表进行join

SELECT AVG(price)
FROM table AS t1
JOIN (SELECT MIN(dateday) AS mindate
      FROM
        (SELECT DATE(date) AS dateday
         FROM table
         GROUP BY dateday
         ORDER BY dateday DESC LIMIT 7
        ) AS x
      ) AS t2
ON t1.date >= t2.mindate

关于mysql - 如何从现有的最近7天中选择数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52390637/

10-12 23:42