Mysql 查找24小时内的最大值
因此,我有一个MySQL数据库,它每小时统计具有给定使用级别的服务器数量,如下所示: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
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中正确地转义它们)