Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获得时间范围的7天平均值?_Mysql_Sql - Fatal编程技术网

Mysql 获得时间范围的7天平均值?

Mysql 获得时间范围的7天平均值?,mysql,sql,Mysql,Sql,我目前正在运行以下查询,以获取数据库中每个用户的每日平均条目数,该查询按预期运行,但我希望对其进行修改,以获得每天7天的平均值 SELECT AVG(bg), AVG(carbs), timestamp FROM users_entries WHERE uid = '10b47fded7d2ea8d' AND timestamp >= '2019-01-01 00:00:00' AND timestamp <= '2019-01-30 00:00:00' GR

我目前正在运行以下查询,以获取数据库中每个用户的每日平均条目数,该查询按预期运行,但我希望对其进行修改,以获得每天7天的平均值

SELECT
    AVG(bg),
    AVG(carbs),
    timestamp
FROM users_entries
WHERE uid = '10b47fded7d2ea8d' AND
timestamp >= '2019-01-01 00:00:00' AND timestamp <= '2019-01-30 00:00:00'
GROUP BY DAY(timestamp)
选择
平均值(bg),
平均值(碳水化合物),
时间戳
从用户输入
其中uid='10b47fded7d2ea8d'和

时间戳>='2019-01-01 00:00:00'和时间戳在MySQL 8+中,您可以使用窗口功能:

SELECT DATE(timestamp),
       AVG(bg),
       AVG(carbs),
       AVG(AVG(bg)) OVER (ORDER BY DATE(timestamp) ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as bg_7,
       AVG(AVG(carbs)) OVER (ORDER BY DATE(timestamp) ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as bg_7,
FROM users_entries
WHERE uid = '10b47fded7d2ea8d' AND
      timestamp >= '2019-01-01' AND
      timestamp < '2019-01-30'
GROUP BY DATE(timestamp);
选择日期(时间戳),
平均值(bg),
平均值(碳水化合物),
(前6行和当前行之间的订单日期(时间戳)行)上的平均值(平均值(bg))为bg_7,
(前6行和当前行之间的订单日期(时间戳)行)上的平均值(平均值(carbs))为bg_7,
从用户输入
其中uid='10b47fded7d2ea8d'和
时间戳>='2019-01-01'和
时间戳<'2019-01-30'
按日期分组(时间戳);

这在MySQL的旧版本中更具挑战性。

请包含示例输入和示例输出。而且
show create table
也有潜在的帮助。您的表中每天都有条目吗?@Nick每天可以有多个条目或0个条目,这取决于用户上传的内容。谢谢,我相信更新我的数据库是一个选项,我正在研究它,但mysql 5.7是否有替代方案?我将共享数据库实例用于较小的项目,并希望尝试避免更新它。升级了我的服务器,该操作正在运行。。。唯一的问题是sequel pro不适用于mysql 8,但这没关系。谢谢有没有可能对这个问题进行更深入的解释?它确实在做我需要的事情,但我对它缺乏理解。