SqlServer2005以上版本提供了开窗排序和开窗汇集函数。函数
经过rank()和row_number()两个函数开窗排序。spa
rank()函数排列相同生成相同的排序,下一个不一样排列排序将跳开,好比生成1 ,1,3。code
row_number()函数即便排列相同也生成不一样的排序,好比1,2,3。blog
over()中能够只排序,partition by分组开窗。排序
在开窗汇集中不能带排序。it
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