首页 > 其他分享 >开窗函数、聚合函数、排序函数

开窗函数、聚合函数、排序函数

时间:2024-10-30 14:31:50浏览次数:1  
标签:函数 NUMBER RANK 开窗 排序 ORDER ROW

‌SQL开窗函数(Window Functions)主要用于对数据集进行分区和排序,并在每个分区内进行聚合计算,同时保持数据的行级细节。

开窗函数的语法形式为:函数 + OVER(PARTITION BY <分组用列> ORDER BY <排序用列>)。其中,PARTITION BY用于定义分区,ORDER BY用于定义窗口内数据的排序。括号中的两个关键词PARTITION BY和ORDER BY可以只出现一个‌

-累计求和
  SELECT sale_date, daily_sales, SUM(daily_sales) OVER (ORDER BY sale_date) AS running_total FROM sales;

开窗函数必须与聚合函数或排序函数一起使用.
聚合函数一般指SUM(),MAX(),MIN,COUNT(),AVG()等常见函数。
排序函数一般指RANK(),ROW_NUMBER(),DENSE_RANK(),NTILE()等。

RANK()函数,排名函数,可以对某一个字段进行排名。

ROW_NUMBER()函数作用就是将SELECT查询到的数据进行排序,每一条数据加一个序号。ROW_NUMBER()函数还可以取指定顺序的数据。

SELECT * FROM ( 
SELECT *, ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS 总排序
FROM Scores
) t WHERE t.总排序=2


ROW_NUMBER()是排序,当存在相同数据时,ROW_NUMBER()会依次进行排序,他们序号不相同,而Rank()则不一样。如果出现相同的,他们的排名是一样的。

DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,特别是对于有数据相同的情况,DENSE_RANK()排名是连续的,RANK()是跳跃的排名,一般情况下用的排名函数就是RANK() [rank 1 1 3 4] [DENSE_RANK 1 1 2 3]

NTILE()函数是将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,就像我们说的'分区'一样 ,分为几个区,一个区会有多少个。


学习参考
https://blog.csdn.net/2401_82584055/article/details/139359910

标签:函数,NUMBER,RANK,开窗,排序,ORDER,ROW
From: https://www.cnblogs.com/kisssheep/p/18515769

相关文章

  • 常用函数
    1.算数函数    ABS-绝对值      ABS(x)当ABS函数的参数为NULL时,返回值也是NULL    MOD-求余数      MOD(被除数,除数)    ROUND-四舍五入      ROUND(对象数值,保留小数的位数)2.字符串函数    CONCAT-拼接      CONCAT(str1......
  • 算法学习笔记5: 排序算法
    排序算法归并排序时间复杂度O(nlogn)空间复杂度O(n),稳定排序就是给定两个有序数组,将两个数组合并在一起升序。定义一个更大的数组,给定两个指针分别指向两个数组,每次取较小值放入新数组。voidmergeSort(inta[],intl,intr){ if(l>=r)return; intmid=l+r>>1;......
  • 实验3_C语言函数应用编程
    task1:输入分数,返回等级有问题。当输入高于E等级对应的分数时,函数返回值将是从该等级到E等级全部等级,如输入9将返回BCDE。 #include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!......
  • 快速排序算法
    快速排序算法是一种高效的排序算法,由C.A.R.Hoare在1960年提出。它的基本思想是分而治之,通过一趟排序将待排序的元素分割成两个部分,其中一部分的所有元素都比另一部分的所有元素小,然后递归地对这两部分继续进行排序操作,整个排序过程可以递归进行,以达到整个数据变成有序序列。快......
  • 【4】函数与结构体
    文章目录一、函数的基本流程及调用二、包的使用原理三、函数的使用注意事项四、`defer`的使用五、字符串常用系统函数六、时间函数七、常用内置函数八、错误处理机制及自定义错误一、函数的基本流程及调用packagemainimport("fmt""string......
  • vs code新建项目、环境、引用本项目的其他模块或函数
    步骤1:创建项目文件夹首先,选择一个合适的位置来存放你的项目文件夹,并创建这个文件夹。浏览到你希望存放项目的位置。右键点击空白处,选择“新建”>“文件夹”,然后命名为my_new_project或其他你喜欢的名字。步骤2:在VSCode中打开项目文件夹接着,我们需要在VS......
  • GaussDB数据库基础函数介绍2
    二、GaussDB常用基础函数介绍与示例1、数字操作函数在GaussDB数据库中,数字操作函数是指用于执行数字操作的函数,例如加减乘除、取余、幂运算等。这些函数通常在数学、计算机科学和工程学等领域中使用,用于处理数字数据和执行数字操作。以下是一些常见的数字操作函数:--abs(x)--......
  • GaussDB数据库基础函数介绍1
    前言函数是数据库中最基本的组成部分之一,它们用于定义和操作数据库中的表格、记录、索引和视图等对象。在数据库中,函数的作用非常重要,因为它们可以实现数据的复杂操作,如查询、更新、删除和排序等。作为华为自主创新研发的分布式关系型云数据库,GaussDB也拥有强大的函数支持体系。......
  • 掌控物体运动艺术:图扑 Easing 函数实践应用
    现如今,前端开发除了构建功能性的网站和应用程序外,还需要创建具有吸引力且尤为流畅交互的用户界面,其中动画技术在其中发挥着至关重要的作用。在数字孪生领域,动画的应用显得尤为重要。数字孪生技术通过精确模拟现实世界中的对象、过程和系统,对动画的需求远远超过传统前端开发。在......
  • Discuz!论坛进行环境检测时提示不支持fsockopen和pfsockopen函数
    问题描述在Linux系统云虚拟主机中安装Discuz!论坛进行环境检测时,提示不支持 fsockopen() 和 pfsockopen() 函数。这两个函数与Discuz!论坛的邮件功能有关,其中 pfsockopen 是 fsockopen 的长连接版本。问题原因安全性考虑:Linux系统云虚拟主机默认禁用了 pfsockopen ......