达梦分析函数

本文介绍了达梦数据库中的分析函数,主要用于统计功能,降低开发复杂度。分析函数在FROM/WHERE/GROUP BY/HAVING子句之后计算,并可在选择列和ORDER BY子句中使用。讨论了ROW_NUMBER(), RANK(), DENSE_RANK()等函数,以及PARTITION BY和ORDER BY的使用。分析函数的ORDER BY不仅提供排序,还能进行标记,其统计不跨分区。此外,文章还探讨了ROWS和RANGE在开窗函数中的应用,以及如何使用分析函数解决SQL中的特定问题,如找出各组收入最低的员工信息。" 131908164,19048838,快速BM迭代译码算法详解与MATLAB实现,"['算法', '数据结构', 'MATLAB', '纠错编码']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分析函数帮助实现一些统计功能,简化一部分开发工作量
一、分析函数语法:
over analytic_clause ,分析函数操作的是一个查询结果集,在 from,where ,group by haveing 子句之后开始计算,在选择列和order by 子句中可以使用分析函数,分析函数有0-3个参数
over/row_number()/rank()/dense_rank() (partition by xx order by xx range/rows)
总结:分析函数是对结果集再进行统计在这里插入图片描述
1、分析函数的order by 不同于普通的order by 分析函数的order by在排序功能之外还多一个标记功能,会标记从分组的第一行到当前行的范围。然后在这个范围内开始聚合累加,所有统计不能跨越 partition by分组所在区域。
2、分析函数会返回实际的行数,聚合函数只返回统计的结果值(一行)

二、开窗部分rows、range
在这里插入图片描述
rows between unbounded preceding and unbounded FOLLOWING:统计的是第一行到最后一行薪资的累积
rows between unbounded preceding and unbounded current now:统计的是第一行到当前行薪资的累积
在这里插入图片描述
三、排序函数
在这里插入图片描述
案例1:用SQL实现emp表中各组收入最低的人信息
普通sql写法,改写法需要全表扫描emp表两次,在这里插入图片描述
分析函数实现方法:
分组后使用order by找到排序最低的,利用from子查询进行过滤排名为1的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值