plsql如何恢复之前sql窗口_sql-高级函数

本文深入探讨了SQL窗口函数的作用,包括在组内排名、专用函数(如rank、dense_rank、row_number)的应用,以及聚合函数(如sum、avg)在窗口函数中的使用。通过实例解析了如何利用窗口函数解决分组、排序、累计求和等问题,展示了其在数据分析和处理中的强大功能。此外,还简单介绍了存储过程的概念、分类和使用方法。
摘要由CSDN通过智能技术生成

一、窗口函数有什么作用?

  • 需要在组内进行排名时,如每个部门按照业绩进行排名(排名问题),找出每个部门排名前N的员工进行奖励

二、什么是窗口函数?

  • 窗口函数:又称为OLAP函数,可以对数据库数据进行实时分析处理。窗口函数的基本语法如下:<窗口函数> Over (partition by <用于分组的列名> oder by <用于排列的列名>)
  • 在窗口函数的位置可以放哪些函数?
  • 1、专用函数,例如rank,dense_rank,row_number
  • 2、聚合函数,如sum,avg,count,max,min等

注:由于窗口函数时对where或者group by字句处理结果进行操作,所以窗口函数原则上都是写在select字句中

三、专用函数作为窗口函数

a.下面结合实例给大家介绍一下窗口函数。对每个班级内的成绩实现以下图形的排名,排名方式有以下三种

  • dense_rank分数相同的排名相同,且排列连续,如1,1,2,3
  • rank分数相同的排名相同且排名不连续,如1,1,3,4
  • row_number分数相同排名不相同,如1,2,3,4
  • 注:group by 与窗口函数中的patition by有什么区别?group by 得到的行数会变,而在窗口函数中使用partition by得到的行数不会变

6d61da1d52161a12e80fa8f4ece15210.png

b.以下三种方式的sql代码以及得出的结果,自己动手赶紧试试吧

7aa8e8d0e54dcc67433eb3606bea5c8a.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值