Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Php 获取mySql中最大值的时间_Php_Mysql_Aggregate Functions - Fatal编程技术网

Php 获取mySql中最大值的时间

Php 获取mySql中最大值的时间,php,mysql,aggregate-functions,Php,Mysql,Aggregate Functions,桌子 我想得到每5分钟的最大值。比如说, 在前5分钟内,最大值为10.1 在第二个5分钟内,最大值为4.2 另外,我还想得到每个最大值对应的“时间” 非常感谢您的select语句需要按5分钟的间隔对所有时间进行分组,然后使用max()on值 下面讨论MySQL中的分组时间: 要进行五分钟分组,请将round()函数与unix\u timestamp() 五分钟: +-------------------+------+ | Time | value| +----

桌子

我想得到每5分钟的最大值。比如说,

  • 在前5分钟内,最大值为10.1

  • 在第二个5分钟内,最大值为4.2

另外,我还想得到每个最大值对应的“时间”


非常感谢

您的select语句需要按5分钟的间隔对所有时间进行分组,然后使用max()on值

下面讨论MySQL中的分组时间:

要进行五分钟分组,请将
round()
函数与
unix\u timestamp()

五分钟:

+-------------------+------+
| 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  |
+-------------------+------+
总之,您的选择可能如下所示(未经测试):


select语句需要按5分钟的间隔对所有时间进行分组,然后使用max()on值

下面讨论MySQL中的分组时间:

要进行五分钟分组,请将
round()
函数与
unix\u timestamp()

五分钟:

+-------------------+------+
| 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  |
+-------------------+------+
总之,您的选择可能如下所示(未经测试):


有几种不同的方法可以做到这一点

大部分时间都应该有效的方法:

select
     round(unix_timestamp([time_field]) / 300) as Time,
     max(value) as Value
from
     [table_name]
group by
     round(unix_timestamp([time_field]) / 300)
这取决于MySQL通常选择它找到的第一行,并根据group by返回该行。因此,首先按值排序的内部查询确保始终首先找到最大值。 (但它并不完全可靠,因为mysql优化器可能会以不同的方式安排查询。它实际上没有定义应该返回哪一行


如果这对您不起作用,请尝试搜索Max group concat技巧。

几种不同的方法

大部分时间都应该有效的方法:

select
     round(unix_timestamp([time_field]) / 300) as Time,
     max(value) as Value
from
     [table_name]
group by
     round(unix_timestamp([time_field]) / 300)
这取决于MySQL通常选择它找到的第一行,并根据group by返回该行。因此,首先按值排序的内部查询确保总是首先找到最大值。 (但它并不完全可靠,因为mysql优化器可能会以不同的方式安排查询。它实际上没有定义应该返回哪一行

如果这不适用于您,请尝试搜索Max group concat技巧