mysql - 检索每 n 行的最大值

标签 mysql sql

我有一个表,其中每一行都包含一个值和一个日期时间。它有数十万行。我想选择最高(最大)值每 n 行

我以前曾使用查询来每小时获取最高值,但这并不是我要找的:

SELECT datetime, MAX(value)
FROM `table` 
GROUP BY date_format(datetime, '%Y-%m-%d &h')

如有任何建议,我们将不胜感激!

最佳答案

您可以枚举行,然后聚合到您心中的愿望:

select min(rn), max(rn), min(datetime), max(datetime), max(value)
from (select t.*, (@rn := @rn + 1) rn
      from `table` t cross join
           (select @rn := 0) params
      order by datetime
     ) t
group by floor((rn - 1) / @n)
order by min(rn);

关于mysql - 检索每 n 行的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36483585/

相关文章:

Php/MySql 'Advanced Search' 页面

sql - 在oracle sql中查找两个日期之间耗时

mysql - sql连接语句的顺序

mysql - 聚类具有相同列的数据并合并其参数并删除其他条目

mysql - 如何在MYSQL中使用max(date)

sql - MariaDB JSON 函数与数组

c# - ODBC 与 MySQLClient

mysql - SQL 查询以获取值存在于逗号分隔字段中的行

python - Django 数据库查询在比较字符串时给出意外的 'illegal double'

Mysql Alter表可以转换为默认值吗?