当前位置:Gxlcms > 数据库问题 > sql返回前N行

sql返回前N行

时间:2021-07-01 10:21:17 帮助过:24人阅读

C as ( select custid,orderdate,orderid,empid, ROW_NUMBER() over(partition by custid order by orderdate desc,orderid desc) as rownum from Sales.Orders ) select * from C where rownum<=3 order by custid,rownum

技术分享

当分区列具有高密度时——少量不同的客户,每一个客户都有大量的订单,采用APPLY运算符为每个客户调用带OFFSET/FETCH或TOP的查询

select C.custid,A.* 
from Sales.Customers as C
cross apply(select orderdate,orderid,empid from Sales.Orders as O where O.custid=C.custid order by orderdate desc,orderid desc 
            OFFSET 0 rows FETCH FIRST 3 ROWS ONLY) as A

以上这两种策略都需要一个POC索引才能运行良好

 

sql返回前N行

标签:fse   sql   sel   索引   调用   number   etc   weight   rom   

人气教程排行