首页 > 数据库 >SQL 分析函数看这篇函数就够了

SQL 分析函数看这篇函数就够了

时间:2024-10-17 17:21:24浏览次数:10  
标签:返回 分析 组中 函数 RANK 就够 SQL 表达式

数据库 SQL 分析函数 / 窗口函数专题,绝对值得收藏!此专题几乎涵盖所有主流数据库,如 Oracle、Hive、MySQL8.0、MaxComputer 等。在企业面试中,分析函数问题更是备受青睐,无论是笔试还是面试,基本都绕不开。

分析函数主要分为以下四类:

  1. 聚合分析函数
    • SUM:用于计算组中表达式的累积和。
    • COUNT:对一组内发生的事情进行累积计数。
    • MIN:在一个组中的数据窗口中查找表达式的最小值。
    • MAX:在一个组中的数据窗口中查找表达式的最大值。
    • AVG:计算一个组和数据窗口内表达式的平均值。
  2. 排名分析函数
    • ROW_NUMBER:正常排序,结果为 [1,2,3,4],必须有 order_by。
    • RANK:跳跃排序,结果为 [1,2,2,4],必须有 order_by。
    • DENSE_RANK:密集排序,结果为 [1,2,2,3],必须有 order_by。
    • FIRST:从 DENSE_RANK 返回的集合中取出排在最前面的一个值的行。
    • LAST:从 DENSE_RANK 返回的集合中取出排在最后面的一个值的行。
    • FIRST_VALUE:返回组中数据窗口的第一个值。
    • LAST_VALUE:返回组中数据窗口的最后一个值。
  3. 数学分析函数
    • STDDEV:计算当前行关于组的标准偏离。
    • STDDEV_POP:计算总体标准偏离,并返回总体变量的平方根。
    • STDDEV_SAMP:计算累积样本标准偏离,并返回总体变量的平方根。
    • VAR_POP:返回非空集合的总体变量(忽略 null)。
    • VAR_SAMP:返回非空集合的样本变量(忽略 null)。
    • VARIANCE:若表达式中行数为 1,则返回 0;若行数大于 1,则返回 VAR_SAMP。
    • COVAR_POP:返回一对表达式的总体协方差。
    • COVAR_SAMP:返回一对表达式的样本协方差。
    • CORR:返回一对表达式的相关系数。
    • CUME_DIST:计算一行在组中的相对位置。
    • NTILE:将一个组分为 “表达式” 的散列表示(类似于 Hive 的分桶原理)。
    • PERCENT_RANK:和 CUME_DIST(累积分配)函数类似。
    • PERCENTILE_DISC:返回一个与输入的分布百分比值相对应的数据值。
    • PERCENTILE_CONT:返回一个与输入的分布百分比值相对应的数据值。
    • RATIO_TO_REPORT:计算 expression/(sum (expression)) 的值,给出相对于总数的百分比。
    • REGR_ (Linear Regression) Functions:这些线性回归函数适合最小二乘法回归线,有 9 个不同的回归函数可供使用。
  4. 行比较分析函数
    • LAG:可以访问结果集中的其它行而不用进行自连接,即 “落后”,如 lag (xx,1,0)。
    • LEAD:与 LAG 相反,LEAD 可以访问组中当前行之后的行,即 “领先”,如 lead (xx,1,0)。

优化建议:

  • 对于每一类分析函数,可以增加具体的使用场景示例,以便读者更好地理解函数的应用。
  • 可以对一些较为复杂的函数,如线性回归函数等,进行更详细的解释和说明。
  • 提供一些实际的 SQL 查询案例,展示这些分析函数在不同数据库中的使用方法。
  • 总结分析函数的使用注意事项和常见问题,帮助读者避免错误。

标签:返回,分析,组中,函数,RANK,就够,SQL,表达式
From: https://blog.csdn.net/weixin_48423810/article/details/143024292

相关文章

  • PostgreSQL 17重磅登场——世界上最成功的数据库
    朋友们,万众期待的PostgreSQL大版本发布又来了!这一次,PostgreSQL17带着全新的性能优化和开发者必备的新功能强势登场。与其说这是一场普通的更新,不如说它是一场专为高并发工作负载和海量数据量身打造的技术嘉年华! 在本次的发布说明中,PostgreSQL全球社区也毫不讳言地直接宣布......
  • mysql慢sql优化思路
    开启慢sql查询配置,或使用云服务厂商的慢sql统计,找到慢sql看下是不是使用了select*,如果是的话,改为查找字段,因为这样可以避免优化器去解析字段,单次查询可能效果不明显,但是一旦并发上来以后,这个就比较明显了,还有就是减少网络IO的消耗看下对应的数据量级,如果连表的话,是不是小表驱......
  • CitrixSQL Server 2016高可用之SQL镜像 SQL Server mirror 带见证服务器
    CitrixSQLServer2016高可用之SQL镜像SQLServermirror带见证服务器原来写过SQL-2008的镜像教程,时过境迁,现在流行2016了,当然也是因为自己常常用到这个功能,写下来SQL的镜像方法帮助不会的朋友。这个教程对于SQL2008\2012\2016以及2017都是可用的。三台SQL服务器,都安装好SQL软......
  • CitrixWindows SQL Server2016安装教程 SQL管理工具SSMS安装
    CitrixWindowsSQLServer2016安装教程SQL管理工具SSMS安装   ......
  • 2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
    今天推进了关于约束以及多表查询的内容,下一步是事务以及关于连接数据库JDBC的学习。点击查看代码----约束--1.概念:--·约束是作用于列上的规则用于限制加入表的数据--·约束的存在保证了数据库中数据的正确性、有效性和完整性--2.约束的分类--非空约束NOTNULL:......
  • 一文彻底弄懂mysql的事务日志,undo log 和 redo log
    在数据库事务管理中,UndoLog和RedoLog是两种关键日志,用于保障事务的原子性和持久性。它们的作用是确保数据库在出现崩溃、断电、宕机等故障时,能够进行恢复操作,从而保障数据一致性和完整性。它们通常用于支持事务的ACID特性中的原子性和持久性。下面将分别介绍UndoLo......
  • 实验三: JavaScript数组与函数
    实验目的熟练掌握常用JavsScript的数组、自定义函数、作用域。实验内容数组定义及元素获取;数组的遍历;数组内容的增删改查;数组的排序;数组的反转、截取、合并、元素拼接函数的声明;函数的调用;匿名函数;作用域。实验步骤:数组定义及元素获取;数组的遍历;数组内容的增删改查......
  • C语言[数组作函数参数]
    输入10个整数作为一个数组,要求判断并且输出其中最大的值和它是数组中的第几位数。本次代码调用max函数数组元素为a[1]~a[9]代码如下:#include<stdio.h>intmain(){  intmax(intx,inty);  inti,m,n,a[10];  printf("enter10intergernumber:"); ......
  • 【MySQL】[HY000][1366] Incorrect string value: ‘\xE4\xB8\xA4\xE6\x95\xB0.
    问题描述在导入中文数据时遇到错误。[2024-10-1610:49:49][HY000][1366]Incorrectstringvalue:'\xE4\xB8\xA4\xE6\x95\xB0...'forcolumn'title'atrow1尝试将某些数据插入到名为’title’的列时,遇到了不正确的字符串值。原因分析MySQL5.7创建数据库的默......
  • MySQL 【日期】函数大全(六)
    目录1、TIME_FORMAT() 按照指定的格式格式化时间。2、TIME_TO_SEC() 将指定的时间值转为秒数。3、TIMEDIFF() 返回两个时间之间的差值。4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果......