SqlServer2005以上版本提供了开窗排序和开窗聚集函数。
通过rank()和row_number()两个函数开窗排序。
rank()函数排列相同生成相同的排序,下一个不同排列排序将跳开,比如生成1 ,1,3。
row_number()函数即使排列相同也生成不同的排序,比如1,2,3。
over()中可以只排序,partition by分组开窗。
在开窗聚集中不能带排序。
select productNo,productName,price,amount,
ROW_NUMBER() over(partition by productNo order by amount) rowNo,
SUM(amount) over(partition by productNo) totalAmount,
MAX(price) over(partition by productNo) maxPrice
from product
本文介绍了 SQL Server 2005 及以上版本提供的开窗排序和开窗聚集函数的功能及使用方法,包括 rank() 和 row_number() 函数的区别,并展示了如何利用 over() 子句进行排序和分组。
365

被折叠的 条评论
为什么被折叠?



