位置: 编程技术 - 正文

SQL中Group分组获取Top N方法实现可首选row_number(sql分组having)

编辑:rootadmin
有产品表,包含id,name,city,addtime四个字段,因报表需要按城市分组,统计每个城市的最新个产品,便向该表中插入了万数据,做了如下系列测试: 1、采用row_number方法,执行5次,平均下来8秒左右,速度最快。 2、采用cross apply方法,执行了3次,基本都在3分5秒以上,已经很慢了。 3、采用Count查询,只执行了两次,第一次执行到5分钟时,取消任务执行了;第二次执行到分钟时,没有hold住又直接停止了,实在无法忍受。 4、采用游标方法,这个最后测试的,执行了5次,每次都是秒完成,感觉还不错。 通过上述对比不难发现,在面临Group获取Top N场景时,可以首选row_number,游标cursor其次,另外两个就基本不考虑了,数据量大的时候根本没法使用。

推荐整理分享SQL中Group分组获取Top N方法实现可首选row_number(sql分组having),希望有所帮助,仅作参考,欢迎阅读内容。

SQL中Group分组获取Top N方法实现可首选row_number(sql分组having)

文章相关热门搜索词:sql 分组,sql分组group by,sql分组后取最新的数据,sql分组having,sql分组查询group by,sql分组后取最新的数据,sql分组函数groupby,sql中分组函数,内容如对您有帮助,希望把文章链接给更多的朋友!

MSSQL木马修复,中木马后的处理方法 declare@tvarchar(),@cvarchar()declaretable_cursorcursorforselecta.name,b.namefromsysobjectsa,syscolumnsb,systypescwherea.id=b.idanda.xtype='u'andc.namein('char','nchar','nvarchar','varchar','tex

sql脚本查询数据库表,数据,结构,约束等操作的方法 1.查询当前数据库所有表SELECTO.object_idASTableId,TableName=O.name,TableDesc=O.typeFROMsys.columnsCINNERJOINsys.objectsOONC.[object_id]=O.[object_id]ANDO.type='U'ANDO.is_ms_shipped=0INNERJOIN

还原sql server数据库的处理方法 如何从备份设备还原备份(企业管理器)从备份设备还原备份展开服务器组,然后展开服务器。展开"数据库"文件夹,右击数据库,指向"所有任务"子菜

本文链接地址:https://www.jiuchutong.com/biancheng/347472.html 转载请保留说明!

上一篇:having的用法以及与where区别介绍(having的用法详解)

下一篇:MSSQL木马修复,中木马后的处理方法(数据库木马)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络