Mysql 选择最近7天的最大值

Mysql 选择最近7天的最大值,mysql,Mysql,我通过每小时插入描述这些项目的记录来跟踪一些项目,作为cron作业 我有一张桌子 steamid(int), eventid(auto_increment), itemid(int), value(int), time(unix format). 我使用每小时统计数据生成一个图表,以显示24小时概览 现在我正试图生成一个7天的历史视图 如何选择过去7天内每天发生的最大值 或者,如果这更简单,我如何选择过去7天中每天的第一个或最后一个条目 提前谢谢 SELECT DATE(FROM_UNIX

我通过每小时插入描述这些项目的记录来跟踪一些项目,作为cron作业

我有一张桌子

steamid(int),
eventid(auto_increment),
itemid(int),
value(int),
time(unix format).
我使用每小时统计数据生成一个图表,以显示24小时概览

现在我正试图生成一个7天的历史视图

如何选择过去7天内每天发生的最大值

或者,如果这更简单,我如何选择过去7天中每天的第一个或最后一个条目

提前谢谢

SELECT   DATE(FROM_UNIXTIME(time)) AS daygroup, 
         MAX(value) AS max_value, 
         MIN(value) AS min_value
FROM     tbl
WHERE    time >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 7 DAY)
GROUP BY daygroup
这将获得过去7天内每天的
值的最小值和最大值

编辑:更新解决方案以获取整行数据:

SELECT a.*
FROM tbl a
INNER JOIN
(
    SELECT   DATE(FROM_UNIXTIME(time)) AS daygroup, 
             MAX(value) AS max_value 
    FROM     tbl
    WHERE    time >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 7 DAY)
    GROUP BY daygroup
) b ON DATE(FROM_UNIXTIME(a.time)) = b.daygroup AND a.value = b.max_value
这将获得过去7天内每天的
值的最小值和最大值

编辑:更新解决方案以获取整行数据:

SELECT a.*
FROM tbl a
INNER JOIN
(
    SELECT   DATE(FROM_UNIXTIME(time)) AS daygroup, 
             MAX(value) AS max_value 
    FROM     tbl
    WHERE    time >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 7 DAY)
    GROUP BY daygroup
) b ON DATE(FROM_UNIXTIME(a.time)) = b.daygroup AND a.value = b.max_value

要改变这一点,同时检索整行的最大值有多困难?我只是想让你知道,这是SQL A片。这很热。要更改它以同时检索整行的最大值有多困难?我只想让你知道,这是SQL A片。这很热。