php – mysql查询速度 – 选择每3行的最大值
发布时间:2020-12-13 22:46:23 所属栏目:PHP教程 来源:网络整理
导读:我有一张包含价格信息的表格.我需要选择每三行的最大值.例: 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
我有一张包含价格信息的表格.我需要选择每三行的最大值.例:
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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |