再求分组取最大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;