Oracle——常用统计汇总分析

本文详细介绍了SQL中的常用聚合函数,包括求平均值(avg())、计数(count())、求最大值(max())、求最小值(min())、求和(sum())等,并通过实例展示了函数的具体使用方法。此外还介绍了去重(distinct())、字符合并(wm_concat())等功能,以及group by高级用法如ROLLUP、CUBE等。

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

1.avg()

求平均值

求指定列的平均值,如果求多个列的平均值需要多个avg()

实例:

select avg(t.c1) from hjj t where t.name='SD.MY';

指的是在hjj这个表当中当name字段等于'SD.MY'时,c1列的平均值 

2.count()

统计指定列的行数

实例:

select count(*),count(t.c1) from hjj t where t.name='SD.MY';

 在上句当中,假如一个表当中,即使表中的c1列有为空的部分,则利用count(*)也会将所有的列的数量统计出来,包含了空的部分,但是如果用count(c1)的话,只会将c1有值的部分统计出来。

3.max()、min()

求最大值、最小值

实例:

select max(t.c1),min(t.c1)from hjj t;

提取出c1列中的最大值 、最小值

4.sum()

求一列的和

实例:

select sum(t.c1) from hjj t;

5.wm_concat()

转字符合并

①把以下图中Name一样的数据合并为一条,而且NO的值要这样显示如 C.1,C.2

②实现这种效果的操作如下,先把Name的值进行分组(group by),再把NO的值用 wm_concat()函数合并起来(注意:记得要to_char(),要不然数据显示不出来,而且会显示成<CLOB>)

实例:

select t.name,to_char(wm_concat(distinct(t.nos))) from hjj_wm_concat group by t.name;
安全管理c1,c2,c5
文明施工c3,c4

 

6.distinct()

去重函数,在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。

可用于单列去重

select distinct name from A

可多列去重

  select  distinct name,id from A

例如:

根据第三个表格可以理解为是name 和id两个字段共同作用的结果,可以理解为唯一映射

7.group by rollup()

Oracle group by高级用法对比效果(ROLLUP、GROUPING SETS、CUBE),今天主要跟大家演示一下,在同一组数据的情况下,每个SQL的执行结果。

     ①:普通的group by

       

 

       ②:加上ROLLUP

      

        ③:加上CUBE

      

     ④:加上GROUPING SETS

     

       总结如下:

ROLLUP

GROUP BY ROLLUP(A,B,C)

首先对(A,B,C)进行GROUP BY,然后对(A,B)进行GROUP BY,然后是(A)进行GROUP BY, 最后对全表进行GROUP BY操作

CUBE

GROUP BY

 CUBE(A,B,C)

首先对(A,B,C)进行GROUP BY,然后依次对(A,B)、(A,C)、(A)、(B,C)、(B)、(C)进行GROUP BY,最后对全表进行GROUP BY操作。

GROUPING SETS

GROUP BY 

GROUPING SETS(A,B,C)

依次对(C)、(B)、(A)进行GROUP BY。

另外,在SQL中可以直接用加减乘除语句进行运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金哥的小超人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值