OVER () 开窗函数

sqlserver的开窗函数分两大类,一类是聚合开窗函数,一类是排序开窗函数。

聚合类开窗函数聚合函数(列)over(选项),选项可以是partition by子句,但不可以是order by 子句。

over关键字表示把聚合函数当成聚合开窗函数而不是聚合函数。SQL标准允许将所有聚合函数用做聚合开窗函数。举个例子,开窗函数count(*) over() 对于查询结果的每一行都返回所有符合条件的行的条数。over关键字后的括号中还经常添加选项用于改变进行聚合运算的窗口范围。如果over关键字后的括号中的选项为空的话,则开窗函数会对结果集中的所有数据进行聚合运算。

select id,name,class,score,count(name) over(partition by class) from #students

在这里插入图片描述
开窗函数的over关键字后面括号中可以使用partition by子句来定义行的分区来进行聚合运算。与group by 子句不同,partition by 子句创建的分区是独立于结果集的,创建的分区是进行聚合运算的,而不同的开窗函数所创建的分区互不干扰。举个例子,下面的sql语句用于显示每一个人员信息以及所在的班级和这个班级所拥有的人数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值