I have a table where each row contains a value and a datetime. It has hundreds of thousands of rows. I would like to select the highest (max) value every n rows.

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

I had previously used a query to get the highest value every hour, but this isn't quite what I am looking for:

我之前使用过查询来获得每小时最高的值,但这不是我想要的:

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

Any advice would be greatly appreciated!

任何建议将不胜感激!

1 个解决方案

#1


1

You can enumerate the rows and then aggregate to your heart's desire:

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

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);

更多相关文章

  1. 寻找解决方案,以每100速率1显示div随机而不创建其他div
  2. 等待执行所有ajax回调的最佳解决方案
  3. 【问题解决方案】ImportError: No module named 'pygal'
  4. Python 黏包及黏包解决方案
  5. 无法安装ndg-httpsclient或者我的解决方案错误
  6. Linux无法连接网络解决方案
  7. Media-S 简介(一个开源的DRM解决方案)
  8. AppScan安全问题解决方案
  9. PLSQL乱码解决方案

随机推荐

  1. Android(安卓)使用CMake 编译NDK
  2. android-屏幕分辨率那点事儿
  3. android 数据存储初探
  4. android CTS SELinuxDomainTest# testIni
  5. Android(安卓)getResources的作用和须要
  6. androidのview游戏框架
  7. Android学习之ListView使用基础
  8. 【CMake】CMake 引入 ( Android(安卓)NDK
  9. Android如何使用注解进行代码检查
  10. Android下使用activation发送邮件