开窗函数over()
用途一:排序order by ,row_number
select *,RANK() over(order by english desc) from Score --根据英语成绩的排序顺序,显示Score表的全部数据,并附加一列排序序号列(可以有重复号)。
select *,row_number() over(order by price desc) --根据价格的排序顺序,显示需求表的全部数据,并附加一列行号列(没有重复号)。
from Orders
用途二:划区partition by,结合聚合函数针对某部分数据进行汇总
--传统的统计汇总,这个语句表示对整个数据进行划区(即SUM()统计的是整个表的总和)
select name,SUM(count)
from Orders
group by name
--采用partition by进行划区,SUM()统计的是划区后的数据总和。
select *,SUM(ocount) over(partition by oname)
from TblOrders
时间: 2024-10-08 15:07:07