今天是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常用分析函数与聚合函数的用法相关推荐

  1. mysql function 表名作为参数_mysql 常用的分组聚合函数

    mysql 常用的分组聚合函数 1.聚合运算 一般情况下,需要的聚合数据(和,平均值,最大,最小等)并不总是存储在表中,但是可以执行存储数据的计算来获取它. 根据定义,聚合函数对一组值执行计算并返回单 ...

  2. oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数

    oracle sql 合并 分组 聚合函数 工作中有一需求,要根据多个表的数据统计情况来更新另外一个表中的某个字段,折腾了会才写出如下sql: --最终版更新语句 update moka_user_u ...

  3. 三.Oracle常用数据类型及单行函数总结

    1.课外扩展知识 UTF-8 一个中文占3个字节,GBK 一个中文占2个字节ctrl+E:可以找到sql查询语句的历史记录(在sql-wiwdow操作)在doc里输desc 表名可以查出该表所有列的类 ...

  4. Oracle 行转列 pivot函数基本用法

    2018年9月30日22点,眼看着就10月份了,回头看下,8月份就写了一篇博客,9月一篇都没写,想着还是得续一续. 刚好前几天,帮一个群友处理了一个关于Oracle中行转列,根据查询中有的项目,动态转 ...

  5. oracle之分析函数 开窗函数,Oracle之分析函数、开窗函数

    一.rank() over(partition by 字段1 order by 字段2) 从最经典的一个例子来说: 这是原始表结构: 现在需要增加一列,用来统计每天不同城市的完成率排名. 这意味着要对 ...

  6. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  7. Mysql(10)——聚合函数的用法

    (1)max()的用法 我们想查寻在is_deleted=0下,id的最大值,可用如上语句,可以查出id最大为4. (2)min()的用法 同上: (3)count()的用法 比如上面的count(* ...

  8. Oracle数据库中的instr函数的用法

    一.instr函数的用法 在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符.在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置. 语法: instr(so ...

  9. java聚合函数_count()聚合函数正确用法

    count()聚合计算 count()是聚合函数,对于返回的结果集,一行行地判断,累计值加1,最后返回累计值,count(*).count(主键ID)和count(1)表示返回满足条件的结果集的总行数 ...

最新文章

  1. 手机GSM--SIM卡体系结构
  2. 人工智能听了很多遍,都应用在哪些领域了你知道吗?
  3. 15年来这8门编程语言位置十分稳定,C#从低谷开始爬升
  4. 信息学奥赛一本通(1266:【例9.10】机器分配)
  5. SQLSERVER查看阻塞和死锁的进程以及执行的语句
  6. 在云上搭建大规模实时数据流处理系统
  7. Centos 8 安装和配置 VNC 服务,让 MAC 可以远程桌面管理Centos(linux)
  8. java 获取拦截url,java – 从数据库或属性中获取Spring Security拦截URL
  9. 方法代码ASP.NET MVC如何使用Ajax的辅助方法
  10. 单例初始化(MRC模式之autorelease)
  11. [Hbase]Hbase知识大全
  12. 电机学直流电机知识点(根据现有题目的总结)
  13. Easy RM to MP3 Converter漏洞分析报告
  14. 气象数据的简单数据分析处理——基于Notebook
  15. 微信小程序—轮播图+背景变化
  16. 【洛谷刷题笔记】P4093 [HEOI2016/TJOI2016] 序列
  17. vo、dto、bo、do、po的概念理解以及与controller、service、dao层的对应关系
  18. Mac相机不可用怎么办?教你恢复相机连接的方法
  19. 用Python搓一个太阳系
  20. Coursera | Andrew Ng (02-week-1-1.12)—梯度的数值逼近

热门文章

  1. Starlink卫星动力学系统仿真建模第一讲
  2. leaflet地图概念框架图
  3. LCA(倍增+Tarjan)和BFS、DFS以及Prim、Kruskal
  4. Linux网络编程之获取网络天气信息
  5. Verilog 综合练习 电子钟的实现
  6. STL:容器共性机制、容器元素深拷贝和浅拷贝问题
  7. Java编程:颜色色带图片的生成
  8. 三星折叠屏手机爆火,但国内市场已经“不需要”
  9. java打开浏览器_Java调用浏览器打开网页完整实例
  10. 虚拟偶像 “造星” 指南,二次元、超写实、智能驱动,你会粉上谁?