码迷,mamicode.com
首页 > 数据库 > 详细

【SQL】开窗函数

时间:2020-11-19 12:17:22      阅读:16      评论:0      收藏:0      [点我收藏+]

标签:必须   str   rgba   dia   auth   name   target   参考   data   

参考链接:https://b23.tv/Ktb0oL

1.为什么用开窗函数(什么情况用)

  • eg:假设一个部门有很多人,又有很多部门,想求每个部门的平均工资
    • 一般情况下,group by部门,只会得到部门名和最后的平均工资
    • 利用开窗函数,还可以另外显示每个部门的人员信息

2.基本语法

# function:聚合函数
# expression:你想要的列(工资)
function (expression)
OVER (PARTITION BY column
      ORDER BY column ASC/DESC
      ROWS [···])
  • OVER():必须有,其余的不是必须的
  • eg:计算累计工资
    • 姓名(name)、部门(department)、小组(group)、工资(salary)、入职日期(join_date)
    • PARTITION(分割) BY
      • 每个部门的 - PARTITION BY department
      • 每个部门及小组的 - PARTITION BY department,group
  • ROWS
    • 默认:ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
      • (unbounded preceding and current row 所有前面的行和现在的行)
    • ROWS BETWEEN (x 是一个数值) …… AND ……
      • UNBOUNDED PRECEDING(前面所有行)
      • x PRECEDING (前x行)
      • x FOLLOWING (后x行)
      • CURRENT ROW (当前行)
  • function (expression)
    • avg(column)
    • count(*) / count(column)
    • dense_rank( )
    • lag(column [, offset ]) / lead(……)
    • max(column) , min(column), median(column)

【SQL】开窗函数

标签:必须   str   rgba   dia   auth   name   target   参考   data   

原文地址:https://www.cnblogs.com/tuzinn/p/13971464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!