当前位置: 代码迷 >> VFP >> 又求分组取最大N条记录
  详细解决方案

又求分组取最大N条记录

热度:1632   发布时间:2013-02-26 00:00:00.0
再求分组取最大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;
  相关解决方案