zoukankan      html  css  js  c++  java
  • 【SQL】开窗函数简介

    【参考链接】: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)
  • 相关阅读:
    23 情态动词+完成时
    22 情态动词否定和疑问
    青山有幸埋忠骨,白铁无辜铸佞臣。
    Modern Perl
    en_windows_10_enterprise_ltsc_2019_x64_dvd_5795bb03
    Destinos & Nuevos Destinos
    TVB <十兄弟>
    Great Udemy Courses
    assembly language reference
    Alex Jones
  • 原文地址:https://www.cnblogs.com/tuzinn/p/13971464.html
Copyright © 2011-2022 走看看