Oracle分析函数之LEAD和LAG实际应用

Oracle分析函数之LEAD和LAG实际应用在前几天的工作中按照客户的需求,需要对客户信息进行数据分析,即某人存在多个状态的账号,将客户信息账号状态分析出结果,和客户确认汇报,根据保留规则,保留唯一账号,以保证程序可用性。起初,根据聚合函数进行查询分析,需要写一大串的SQL,即不美观又复杂,很容易产生错误。后续想到Oracle分析函数中的lead和lag,SQL简洁了很多且容易产生报告数据。创建一个测试表用于测试分析,具体数据:SELECT * FROM TMP_HBWH_USER_ACCTNO;
摘要由CSDN通过智能技术生成

Oracle分析函数之LEAD和LAG实际应用
在前几天的工作中按照客户的需求,需要对客户信息进行数据分析,即某人存在多个状态的账号,将客户信息账号状态分析出结果,和客户确认汇报,根据保留规则,保留唯一账号,以保证程序可用性。起初,根据聚合函数进行查询分析,需要写一大串的SQL,即不美观又复杂,很容易产生错误。后续想到Oracle分析函数中的lead和lag,SQL简洁了很多且容易产生报告数据。

创建一个测试表用于测试分析,具体数据:

SELECT * FROM TMP_HBWH_USER_ACCTNO;

测试数据:

聚合函数和分析函数的区别

聚合函数和分析函数最大的区别在于,分析函数可以查询多个字段的数据,但是聚合函数只能查询出函数和分组字段的数据。

SELECT ACCTNO,COUNT(1) FROM TMP_HBWH_USER_ACCTNO GROUP BY ACCTNO;

聚合函数查询

SELECT ACCTNO,ACCTNAME,STATES,COUNT(1) OVER (PARTITION BY ACCTNO ORDER BY ACCTNO) CN FROM TMP_HBWH_USER_ACCTNO;

分析函数查询
而我们如果想通过聚合函数实现查询上述字段信息,则需要

SELECT A.ACCTNO,ACCTNAME,STATES,CN FROM TMP_HBWH_USER_ACCTNO A INNER JOIN 
(SELECT ACCTNO,COUNT(1) CN FROM TMP_HBWH_USER_ACCTNO GROUP <
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值