一.窗口函数有什么用?

在日常工作中,我们常常遇到在每组内进行排名,比如:

排名问题:每个部门按业绩来排名

topN问题:找出每个部门排名前N的员工进行奖励

面对这类需求,就需要使用sql的高级功能窗口函数了。

二.什么是窗口函数?

窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。也称为分析函数,窗口函数与分组聚合函数类似,但是每一行数据都生成一个结果。

语法如下:‹窗口函数› over (partition by ‹用于分组的列名›

order by ‹用于排序的列名›)

三、如何使用窗口函数?

1.窗口函数有以下功能:

1)同时具有分组和排序的功能

2)不减少原表的行数

3)语法如下:

‹窗口函数› over (partition by ‹用于分组的列名›

order by ‹用于排序的列名›)

2.专用窗口函数rank

例如CLASS 一张班级表,它的内容有学号,班级,成绩。 如果我们想在每个班级内按成绩排名,可以通过rank()窗口函数来实现。

3.专用窗口函数dense_rank 和 row _number

例如:

rank函数:这个例子中是5位,5位,5位,8位,也就是如果有并列名次的行,会占用下一名次的位置

dense_rank函数:这个例子中是5位,5位,5位,6位,也就是如果有并列名次的行,不占用下一名次的位置。

row_number函数:这个例子中是5位,6位,7位,8位,也就是不考虑并列名次的情况。

注意条件:在上述的这三个专用窗口函数中,函数后面的括号不需要任何参数,保持()空着就可以

四、聚合函数作为窗口函数

聚合函数就是我们熟知的汇总分析聚合函数,如:sum(),count(),avg(),max(),min()。而聚合函数同样可以应用到窗口函数中,只需要把聚合函数写在窗口函数的位置即可,但是函数后面括号里面不能为空,需要指定聚合的列名。

这样使用窗口函数有什么用呢?

聚合函数作为窗口函数,可以在每一行的数据里直观的看到,截止到本行数据,统计数据是多少(最大值、最小值等)。同时可以看出每一行数据,对整体统计数据的影响。

案例:现有“成绩表”,记录了每个学生各科的成绩。问题:查找单科成绩高于该科目平均成绩的学生名单。

五、窗口函数的移动平均

什么是简单移动平均值

简单移动平均(英语:Simple Moving Average,SMA)是某变数之前n个数值的未作加权算术平均。例如,收市价的10日简单移动平均指之前10日收市价的平均数。

在SQL中也可以使用窗口函数来实现移动平均值计算。

例如:

在这个窗口函数中,用了rows和preceding这两个关键字,是“之前~行”的意思,就是以前面两行成绩数据和自身数据(一共三行数据)取平均值。

这样使用窗口函数有什么用呢?

这里可以通过preceding关键字调整作用范围,在以下场景中非常适用:

在公司业绩名单排名中,可以通过移动平均,直观地查看到与相邻名次业绩的平均、求和等统计数据。

matlabif函数多个条件并列_sql课堂笔记-窗口函数相关推荐

  1. if函数的语法c语言并列,if函数多个条件并列

    1.电脑打开2113Excel表格,要判定J1大于526141020,K1大于0,就显示1:J1大于0,K1小于0,就显示-1.16532.输入公式IF(AND(J1>0,K1>0),1, ...

  2. HTML函数多个条件并列,Excel满足两个条件的多解法

    来自:IT部落窝 链接:http://www.ittribalwo.com/article/1638.html Excel满足两个条件的查找也是很常见的.比如下面的截图:查找满足两个条件:第一,合作项 ...

  3. if函数多个并列条件c语言,countif函数(if函数多个条件并列)

    =countif(B1:B10,">=80")-countif(B1:B10,">90") 假设B1:B10为你的数据区域.语法 COUNTIF(range,criteria) Range ...

  4. HTML函数多个条件并列,excel if函数如何多个条件并列

    认识IF函数的语法 IF(logical_test, [value_if_true], [value_if_false]),其中logical_test是逻辑检验的表达式:value_if_true是 ...

  5. python条件控制语句_Python课堂笔记 条件控制语句

    事例1 mood = False if mood: print('go to left') else: print('go to right') 事例2 ACCOUNT = 'qiyue' PASSW ...

  6. python并列条件_if函数如何多个条件并列

    认识IF函数的语法 IF(logical_test, [value_if_true], [value_if_false]),其中logical_test是逻辑检验的表达式:value_if_true是 ...

  7. python if函数两个并列条件怎么用_if函数中多个并列的条件怎么定义?

    展开全部 案例一:最简单的单一条件判断 案例说明:当质检分数62616964757a686964616fe4b893e5b19e31333431353934小于80分,产品检测不合格,反之合格 函数公 ...

  8. js,根据一个数组,遍历对象数组,进行多条件并列的筛选或过滤

    js,根据一个数组,遍历对象数组,进行多条件并列的筛选或过滤 1. 筛选是否 2. 筛选特定值 多条件并列:某一条数据的两个以上的属性,同时满足筛选条件 1. 筛选是否 业务场景:返回一个对象数组,在 ...

  9. html if函数,IF条件判断函数还不会就out了,IF函数七种条件判断用法都在这

    IF函数是工作中最常用的函数之一,因为if函数大多是搭配其他函数一起使用,很多人会对这个函数感叹非常难,今天我们来讲解一下if函数的7个常见用法,学完你就算是真正掌握了这个函数了. 1.单条件判断返回 ...

  10. pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe)

    pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe) ...

最新文章

  1. servlet里面的context,定义属性值的事情!
  2. ifcfg系列命令配置网络属性
  3. OSChina 技术周刊第十六期 —— 每周技术精粹
  4. 原型机拱手让人,飞行器停售,谷歌创始人押注的飞行汽车,如今搁浅
  5. 一个好的MIS系统应该考虑哪些内容
  6. 吴恩达机器学习笔记11-梯度下降法实践2-学习率
  7. 如何使用智能铃声避免在Android中令人尴尬的大声铃声
  8. 佛系程序员:什么bug不bug的,随缘吧
  9. YAML 学习笔记 .yml
  10. JavaWeb 后端 三 之 Response Request 学习笔记
  11. mysql 当前时区_如何获取MySQL的当前时区?
  12. 线性渐变和放射性渐变
  13. 百度地图---之---行政区域划分
  14. 【目标跟踪系列】Struck: Structured Output Tracking with Kernels(代码调试运行篇)
  15. python解析HL7协议多方式对比
  16. MenuetOS-令人不可思议的64位操作系统!
  17. 百度UEditor视频相关bug汇总和解决方案
  18. 【NanoPi T2】 5.uboot gmac网卡驱动(1) - mac控制器,phy芯片,rgmii协议
  19. 抢注数字域名 数字含义解释
  20. 《经营的本质》2-“战略的本质”读后感及读书笔记

热门文章

  1. 基于TensorRT量化部署RepVGG模型
  2. 使用国内源来安装pytorch(速度很快)
  3. Jmeter安装+配置+运行
  4. windows10误删Administrator用户的家目录之后
  5. zabbix*邮件报警 *用户参数User parameters *定义key值 *Agentd主动模式与被动模式
  6. EasyUi模糊匹配搜索框combobox
  7. 分布式监控:Zabbix_sender介绍及配置
  8. [POJ2195]Going Home(带权最大匹配,KM,最小费用流)
  9. react 属性与状态 学习笔记
  10. Android 使用URLConnection来post数据