窗口函数可以对数据库数据进行实时分析处理
窗口函数的作用:
- 同时具有分组和排序的功能
- 不减少原表的行数
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>)
-- 其中 <窗口函数>:
-- 1) 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数
-- 2) 聚合函数,如sum. avg, count, max, min等
-- 专用窗口函数:
rank() over (partition by <用于分组的列名>
order by <用于排序的列名>)
dense_rank() over (partition by <用于分组的列名>
order by <用于排序的列名>)
row_number() over (partition by <用于分组的列名>
order by <用于排序的列名>)
-- 其中:
-- partition by用来对表分组
-- order by子句的功能是对分组后的结果进行排序,默认是按照升序(asc)排列,加desc关键词表示降序排列
-- 举例说明:我们相对不同城市的销售进行业绩排名
-- 新建一张销售表
create table [dbo].[Sales_Detail]
(
[Salesman_ID] varchar(255),
[