首页 > 其他分享 >窗口函数

窗口函数

时间:2023-03-14 21:14:16浏览次数:27  
标签:名次 函数 over partition rank score 窗口

窗口函数

  • 语法

    窗口函数 over (partition by 用于分组的列名 order by 用于排序的列名)
    
  • 窗口函数的分类

    • 专用窗口函数
      • rank
      • dense_rank
      • row_number
    • 聚合函数
      • sum
      • avg
      • count
      • max
      • min
    • 取值函数
      • first_value:返回分组内第一个值
      • last_value:返回分组内最后一个值
      • nth_value:返回分组内第n行
  • 特点:一般用在select子句中,同时具有分组和排序功能,不减少原表的行数。

  • 专用窗口函数示例

    #对每个年级的同学分别按成绩降序排名
    select *,
    	rank() over (partition by grade order by score desc) ranking
    from class_table;
    

    若不需要分组,也可以省略partition by语句。

  • rank、dense_rank、row_number的区别

    • rank:排名时若有并列名次,则并列的这几名名次一样,但是会占用相应的位置。例如名次为1、2、3、4、5、5、5、8、9
    • dense_rank:排名时若有并列名次,则并列的这几名名次一样,不会占用位置,例如名次为1、2、3、4、5、5、5、6、7
    • row_number:排名时若有并列名次,并列的这几名名次不一样,仍然每个人占用一个名次,例如第5、6、7个人的得分一样,名次为1、2、3、4、5、6、7、8、9
  • 聚合函数

    • 示例

      #对每个年级学生的成绩求和、平均值、计数。得到的是当前学生与前面学生的累计和、均值、计数
      select *,
      	sum(score) over (partition by grade order by score desc) current_sum,
      	avg(score) over (partition by grade order by score desc) current_avg,
      	count(score) over (partition by grade order by score desc) current_count
      from class_table;
      

标签:名次,函数,over,partition,rank,score,窗口
From: https://www.cnblogs.com/DYDNyang/p/17216378.html

相关文章

  • Qt 算法->程序运行时间(计时函数)
    参考:Qt算法->程序运行时间(计时函数)_qtclock函数_男银的骄傲的博客-CSDN博客 用的这个博客里的方法 QT笔记(7)——Qt利用QTime计算程序运行时间_abcvincent的博客-CSDN......
  • X86_64中的函数调用栈
    在C/C++程序中,函数调用是十分常见的操作。那么,这一操作的底层原理是怎样的?编译器帮我们做了哪些操作?CPU中各寄存器及内存堆栈在函数调用时是如何被使用的?栈帧的创建和恢......
  • 函数性质与决策单调性
    一些函数性质:一次函数:最大值和最小值在\(x\)的最大值或最小值取到。(引申)反比例函数:最大值和最小值在\(\cfrac{1}{x}\)的最大值或最小值取到。奇/偶函数:对称性。单......
  • 窗口的python代码实现
    importtkinterfromtkinterimport*window=tkinter.Tk()window.geometry('1000x800+300+300')window.title('SSH连接器')window.config(bg='grey')label=tkinter.Label(w......
  • [转]user32.dll 函数说明小结
    user32.dll函数说明小结这篇文章主要介绍了user32.dll函数说明,需要的朋友可以参考下函数名称说明ActiveKeybo......
  • [思维提升|干货All in]6种算法解决LeetCode困难题:滑动窗口最大值
    为了更好的阅读体验,欢迎阅读原文:[思维提升|干货Allin]6种算法解决LeetCode困难题:滑动窗口最大值(eriktse.com)最近在leetcode遇到一道非常经典的题目:239.滑动窗口最......
  • Katalon-指定浏览器窗口大小(Set View Port Size)
      点击setviewportsize ......
  • 转:numpy中expand_dims()函数详解
    注:本文只是本人的通俗理解,有些专业概念表达不是很清楚,但我相信你读完可以理解该函数并会使用。expand_dims(a,axis)中,a为numpy数组,axis为需添加维度的轴,a.shape将在该轴......
  • 【MySQL】substring_index 函数详解
    【MySQL】substring_index函数详解命令格式stringsubstring_index(string<str>,string<separator>,int<count>)命令说明截取字符串str第count个分隔符之前的字......
  • python函数的定义和调用
    在Python中,可以使用def关键字定义函数,并使用函数名和括号来调用它。函数的基本语法如下:deffunction_name(parameters):"""函数文档字符串"""#函数体......