桌子

+-------------------+------+
| Time              | value|
+-------------------+------+
| 2011-2-1 1:01:00  | 10.1 |
+-------------------+------+
| 2011-2-1 1:03:15  | 7.7  |
+-------------------+------+
| 2011-2-1 1:05:21  | 5.4  |
+-------------------+------+
| 2011-2-1 1:06:00  | 2.3  |
+-------------------+------+
| 2011-2-1 1:09:30  | 4.2  |
+-------------------+------+
| 2011-2-1 1:11:10  | 6.2  |
+-------------------+------+

我想每5分钟得到一个最大值。例如,
在前5分钟,最大值为10.1。
在第二个5分钟内,最大值为4.2
另外,我还想得到每个最大值对应的“时间”。
非常感谢

最佳答案

select语句需要按5分钟的间隔对所有时间进行分组,然后在值上设置max()。
这是关于MySQL中的分组时间:
http://forums.mysql.com/read.php?20,131939,131955#msg-131955
要进行五分钟分组,请将round()函数与unix_timestamp()结合使用
五分钟:

round(unix_timestamp([time_field]) / 300)

总之,您的选择可能看起来像这样(未经测试):
select
     round(unix_timestamp([time_field]) / 300) as Time,
     max(value) as Value
from
     [table_name]
group by
     round(unix_timestamp([time_field]) / 300)

08-05 07:02
查看更多