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