• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle常用分析函数与聚合函数的用法

    今天是2019年第一天,在此祝大家新年快乐,梦想还在路上,让我们继续加油!

    应之前的计划,今天完成这篇记录,也借此记录自己的成长。

    一、几个排名函数的语法和用法:

     rank ( )  over ([partition by col]  order by col )

    dense_rank ( )  over ([partition by col] order  by col )

    rownumber ( )  over ( [partition by col] order by col )

    rank() 是排名的函数,该函数组内排序后会进行跳号,分数相同的作为并列。

    dense_rank() 该函数不会跳号,分数相同为并列第一,下一个是第二。

    row_number() 可以通过over 根据某字段排序完之后进行组内(如果有partition by)排序。

    下图是测试结果,先来看图消化一下:

    下边是代码:

    with lcy as (
    select regexp_substr('10,20,30,30,50,60,80,80,90,100','[^,]+',1,level) score 
     from dual connect by level = 10
    )
    select score, 
        rank()over (order by to_number(score) desc) "rank",
        dense_rank()over (order by to_number(score) desc) "dense_rank" ,
        row_number()over (order by to_number(score) desc) "row_number" 
     from lcy ;

    解释可能不够详细,但我觉得截图展示更直观一点。

    二、Oracle分析函数与聚合函数的区别:

    分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

    (肚里墨水太少,还是直接看例子吧)

    几种常用的聚合函数(这里就不截图了,大家可以试一下):

    1、 AVG(DISTINCT|ALL)

    ALL表示对所有的值求平均值,DISTINCT只对不同的值求平均值

    SELECT AVG(SAL) FROM SCOTT.EMP;
    SELECT AVG(DISTINCT SAL) FROM SCOTT.EMP;

    2、MAX(DISTINCT|ALL)

    求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
    (加不加查询结果一致,不知DISTINCT有什么用途,不同于AVG等聚合函数)

    SELECT MAX(DISTINCT SAL) FROM SCOTT.EMP;
    SELECT MAX(SAL) FROM SCOTT.EMP

    3、 MIN(DISTINCT|ALL)

    求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次

    SELECT MIN(SAL) FROM SCOTT.EMP;
    SELECT MIN(DISTINCT SAL) FROM SCOTT.EMP;

    4、STDDEV(distinct|all)

    求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差

    SELECT STDDEV(SAL) FROM SCOTT.EMP;
    SELECT STDDEV(DISTINCT SAL) FROM SCOTT.EMP;

    5、VARIANCE(DISTINCT|ALL)

    求协方差  ALL表示对所有的值求协方差,DISTINCT表示只对不同的值求协方差

     SELECT VARIANCE(SAL) FROM SCOTT.EMP;
    SELECT VARIANCE(DISTINCT SAL) FROM SCOTT.EMP;

    6、SUM(DISTINCT|ALL)

    求和  ALL表示对所有值求和,DISTINCT表示只对不同值求和(相同值只取一次)

    SELECT SUM(SAL) FROM SCOTT.EMP;
    SELECT SUM(DISTINCT SAL) FROM SCOTT.EMP;

    7、COUNT(DISTINCT|ALL)

    求记录、数据个数。 ALL对所有记录,数组做统计, DISTINCT只对不同值统计(相同值只取一次)

    SELECT COUNT(SAL) FROM SCOTT.EMP;
    SELECT COUNT(DISTINCT SAL) FROM SCOTT.EMP; 

    先写这么多吧,今天总结的有点潦草,之后的话或许还会有补充,说实话一开始,虽然我会用,但是不知道区别,在这里很感谢我老大的指导,才得以完成这篇文章,我会继续努力哒!

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • Oracle常见问题解决方案汇总
    • Oracle全角数字转换半角数字
    • Oracle连续相同数据的统计
    • Oracle相关组件版本信息的介绍
    • Oracle基础:程序中调用sqlplus的方式
    • Oracle基础多条sql执行在中间的语句出现错误时的控制方式
    • Oracle查询sql错误信息的控制和定位
    • 运行在容器中的Oracle XE-11g
    • Oracle基础:通过sqlplus执行sql语句后的结果进行判断
    • Oracle导入导出数据的几种方式
    上一篇:Oracle相关组件版本信息的介绍
    下一篇:Oracle连续相同数据的统计
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle常用分析函数与聚合函数的用法 oracle,常用,分析,函数,与,