Mysql 查找24小时内的最大值

Mysql 查找24小时内的最大值,mysql,count,Mysql,Count,因此,我有一个MySQL数据库,它每小时统计具有给定使用级别的服务器数量,如下所示: Date Status Population 2012-01-13 15:33:40 UP Standard 2012-01-13 15:33:40 UP Light 2012-01-13 15:33:40 UP Heavy 2012-01-13 15:33:40 UP Light 2012-01-13 16:33:40 UP

因此,我有一个MySQL数据库,它每小时统计具有给定使用级别的服务器数量,如下所示:

Date                Status  Population
2012-01-13 15:33:40 UP      Standard
2012-01-13 15:33:40 UP      Light
2012-01-13 15:33:40 UP      Heavy
2012-01-13 15:33:40 UP      Light

2012-01-13 16:33:40 UP      Light
2012-01-13 16:33:40 UP      Very Heavy
2012-01-13 16:33:40 UP      Light
等等

以及一个查询,该查询统计按分钟分组的具有给定使用级别的服务器数量

SELECT DATE, ROUND( UNIX_TIMESTAMP( DATE ) / ( 1*60 ) ) AS TIME, COUNT( IF( POPULATION =  "Light", 1, NULL ) ) AS LightCount, COUNT( IF( POPULATION =  "Standard", 1, NULL ) ) AS StandardCount, COUNT( IF( POPULATION =  "Heavy", 1, NULL ) ) AS HeavyCount, COUNT( IF( POPULATION =  "Very Heavy", 1, NULL ) ) AS VeryHeavyCount, COUNT( IF( POPULATION =  "Full", 1, NULL ) ) AS FullCount, COUNT( IF( POPULATION =  "Offline", 1, NULL ) ) AS OfflineCount
FROM  `Servers` 
GROUP BY TIME
ORDER BY DATE ASC
输出如下所示:

DATE            TIME            LightCount  StandardCount   
2012-01-13 15:33:40 22108174    16          146     
2012-01-13 16:33:35 22108180    16          147 
以此类推,每小时计算跑步次数

我试图找到一种方法来确定每24小时内“LightCount”或“StandardCount”等的最高数量。换句话说,在任何一天,每小时的最高光照数是多少

这有可能吗?它需要某种嵌套查询吗


非常感谢您的帮助。

看起来您已经详细说明了如何自己做这件事。想象一下在输出“表”上编写一个新查询。因此,您需要对查询进行子查询,以使用MAX查找最高值。首先,您可以使用
按日期分组(
DATE
),小时(
DATE
进行小时总数:

SELECT `DATE`, COUNT(...), ... -- HOUR(`DATE`) if you wanted to see it
FROM `Servers`
GROUP BY DATE(`DATE`),HOUR(`DATE`)
ORDER BY `DATE` ASC
然后每天做最大小时数

SELECT DATE(`DATE`) as Day, MAX(LightCount) as MaxHourlyLightCount, ...
FROM (
    SELECT `DATE`, ....
    FROM `Servers`
    GROUP BY DATE(`DATE`),HOUR(`DATE`)
    ORDER BY `DATE` ASC
     ) HourlyCounts
GROUP BY Day
MySQL日期/时间函数的链接——您可以使用
按月分组(`Date``)、按年分组(`Date`)
进行月度统计,使用
按年分组(`Date`)
进行年度统计——非常方便

(注意:将上面的双反勾号替换为单反勾号——我不知道如何在stackoverflow中正确地转义它们)