首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

再求分组取最大N条记录,该如何解决

2012-05-31 
再求分组取最大N条记录上次已经问过这个问题了,多谢wwwwb和ACMAIN_CHM两位拔刀相助,已经搞定。但那个算法计

再求分组取最大N条记录

上次已经问过这个问题了,多谢wwwwb和ACMAIN_CHM两位拔刀相助,已经搞定。

但那个算法计算量理论上是笛卡尔积数量级的,数据量不大的时候很实用,算法精炼。数据量一大就麻烦了。
我一开始大概是2、3千条记录的数据量,5分钟能出结果。等到1万2、3时,等了半个钟头,提示临时文件过大,超出系统限制,晕.........

大家还有没有什么其它办法?不是一条SQL搞定也行。



[解决办法]
提出你的问题,否则大家也帮不上忙
[解决办法]
理论上可以多层次比较的,你可以把数据分成A,B,C,D,。。。。多组先在每组中进行比较,再把每组的最大值进行比较。
[解决办法]
贴建表及插入记录的SQL,及要求结果出来看看

索引建立没有
[解决办法]
SQL SERVER中你可以直接用ROW_NUMBER 函数

SELECT FirstName, LastName, TerritoryName, ROUND(SalesYTD,2,1),
ROW_NUMBER() OVER(PARTITION BY TerritoryName ORDER BY SalesYTD DESC) AS Row
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0
ORDER BY TerritoryName;

热点排行