Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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获取过去24小时内每小时的平均值_Mysql_Sql - Fatal编程技术网

MySQL获取过去24小时内每小时的平均值

MySQL获取过去24小时内每小时的平均值,mysql,sql,Mysql,Sql,我使用以下查询来获取一天内每小时的平均值,但我不会得到最新的数据,而不是最旧的数据: SELECT id, serverID, AVG(performance) as performance, AVG(online) as online, HOUR(timestamp) FROM stats_server WHERE serverID= :serverID AND DATE_SUB(`timestamp`,INTERVAL 1 HOUR) GROUP BY HOUR(ti

我使用以下查询来获取一天内每小时的平均值,但我不会得到最新的数据,而不是最旧的数据:

SELECT id, serverID, AVG(performance) as performance, AVG(online) as online, HOUR(timestamp)
    FROM stats_server
    WHERE serverID= :serverID AND DATE_SUB(`timestamp`,INTERVAL 1 HOUR)
    GROUP BY HOUR(timestamp)
    ORDER BY id ASC

您必须提及最近24小时的数据:

SELECT id, serverID, AVG(performance) as performance, AVG(online) as online, 
HOUR(timestamp) FROM stats_server
WHERE serverID= :serverID AND DATE_SUB(`timestamp`,INTERVAL 1 HOUR) And 
timestamp > DATE_SUB(NOW(), INTERVAL 1 DAY)
GROUP BY HOUR(timestamp)
ORDER BY id ASC

你是说订单吗?如果是这样,为什么不试试
orderbyiddesc
nope,这个查询已经将输出限制为24个结果,所以ORDER可以正常工作,但只适用于24个结果WHERE子句的“DATE\u SUB”部分缺少了一些内容:类似于
timestamp>DATE\u SUB(timestamp,INTERVAL 24小时)
。此外,您要求1小时,而您想要24小时(以便按他们分组),您丢失了DATE_SUB的条件:
和timestamp>DATE_SUB(
timestamp
,INTERVAL 1小时)
@Uril如果我添加这个,结果是一样的。这是另一种解决方法,我没有考虑,谢谢。抱歉,我只是注意到它不起作用,它显示的是“昨天”的数据,而不是过去24小时的数据。我们可以在24小时内做同样的事情吗?是的,现在它正确了,将使用当前时间戳,谢谢你更新我,我已经编辑过了