php – mysql查询速度 – 选择每3行的最大值

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – mysql查询速度 – 选择每3行的最大值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张包含价格信息的表格.我需要选择每三行的最大值.例:

Table `daily_high`
 ____ _______
| ID | HIGH  |
| 1  | 24.65 |
| 2  | 24.93 |
| 3  | 26.02 |
| 4  | 25.33 |
| 5  | 25.16 |
| 6  | 25.91 |
| 7  | 26.05 |
| 8  | 28.13 |
| 9  | 27.07 |
|____|_______|


Desired output to new table (ID will be auto-increment so don't assume an association exists between this ID 1 and the daily_high ID 1:
 ____ ___________
| ID | 3MaxHIGH  |
|____|___________|
| 1  | 26.02     |
| 2  | 25.91     |
| 3  | 28.13     |
|____|___________|

我想比较ID 1,2和3来确定它们之间的高值.然后,一旦我比较了1-3,我想继续进行4到6,然后是7到9等,直到我为表中包含的所有值(目前大约400,000个值)完成此操作.我编写了使用的代码

SELECT max(HIGH)From daily_high为dh1 JOIN(SELECT max(HIGH)From daily_high WHERE id> = dh1 AND id<(dh1.id 3)) 这有效,但速度非常慢.我已经尝试使用SELECT语句,我在其中标识要显示的列值,这意味着在查询的SELECT和FROM部分之间. 我试图使用JOIN将所有3行连接到同一个表上进行比较,但它也非常慢.慢了我的意思是在不到10秒的时间内收集20行的信息.这意味着查询在9.65879893303秒内分析了60行(20组3个)(我没有这样做,我用Microtime()来计算它. 任何人都有任何建议比我更快的代码? 请记住,我的实际表格与我上面发布的表格不同,但概念是相同的. 谢谢你的帮助.

解决方法

如果你持续识别,你可以做到一点

SELECT floor(id/3) as range,max(HIGH) FROM daily_high group by range;

脚本宝典总结

以上是脚本宝典为你收集整理的php – mysql查询速度 – 选择每3行的最大值全部内容,希望文章能够帮你解决php – mysql查询速度 – 选择每3行的最大值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。