(三)Oracle分组函数

本文详细介绍了Oracle中的分组函数,如avg(), count(), max(), min(), sum(), stddev()和variance(),并探讨了where和having的用法及它们的区别。通过实例展示了如何结合group by和having进行筛选,以及如何在不结合group分组的情况下使用这些函数。此外,还讲解了order by语句的使用,并给出了多个练习题以巩固学习。" 133499301,19695064,Python日期与时间操作指南,"['Python', '开发语言', '日期时间处理']
摘要由CSDN通过智能技术生成

学习内容

组函数

函数

分类 作用
单值函数 对一个值、或者一个列进行操作,返回一个结果
分组函数 先分组,然后对每一组进行操作,每一组数据操作后分别得到一个结果

分组函数

组函数(分组函数),是指将数据按照某列的值进行分组后,然后使用组函数分别对每个分好的小组中的数据进行处理。所以组函数一般要结合着分组关键字group来使用。

统计分析(分组主要为了统计)

  • 分组 group by…

  • 函数 avg…

  • 筛选(与where类似) having…

  • 组函数

    avg求平均值
    count 计算有多少条数据
    max 最大值
    min 最小值
    sum 求和

    不常用:
    stddev 标准差
    variance 方差

  • 语句执行顺序
    where–>group by分组–>执行组函数–>having筛选->order by

  • 组函数可以出现的位置
    1) select后面
    2) having后面
    3) order by后面
    4) where后面一定【不能】出现组函数(因为where执行时组函数还未执行)

  • where与having最大的区别:(与静态非静态很像)
    where后面拿不到组函数执行结果,having可以。

注意:如果select/having语句后面出现了组函数,那么select/having后面没有被组函数修饰的列,就必须出现在group by 后面。

where和having对比

  1. where和having都是做条件筛选的
  2. where执行的时间比having要早
  3. where后面不能出现组函数
  4. having后面可以出现组函数
  5. where语句要紧跟from后面
  6. having语句要紧跟group by后面

group by和having的关系(与if else很像)

  1. group by可以单独存在,后面可以不出现having语句
  2. having不能单独存在,有需要的话,必须出现在group by后面

order by语句

  1. 如果sql语句中需要排序,那么就一定要写在sql语句的最后面
  2. order by后也可以出现组函数

使用分组函数

不结合group分组使用

注:如果不使用group分组的话,那么默认当前查询到的所有数据是一组。

avg():查询s_emp表中所有员工的平均工资
select avg(salary)
from s_emp;

在这里插入图片描述

count():查询s_emp表中共有多少条数据
select count(*)
from s_emp;

在这里插入图片描述

max():查询s_emp表中所有员工中的最大工资
select max(salary)
from s_emp;

在这里插入图片描述

min():查询s_emp表中所有员工中的最小工资
select min(salary)
from s_emp;

在这里插入图片描述

sum():查询s_emp表中所有员工的工资总和
select sum(salary)
from s_emp;

在这里插入图片描述

stddev():查询s_emp表中所有员工的工资的标准差
select stddev(salary)
from s_emp;

在这里插入图片描述

variance():查询s_emp表中所有员工的工资的方差
select variance(salary)
from s_emp;

结合group分组使用

avg():查询s_emp表中每个部门的平均工资
select dept_id,avg(salary)
from s_emp
group by dept_id;

在这里插入图片描述排序:
在这里插入图片描述

max():查询s_emp表中每个部门员工的最高工资
		select dept_id,max(salary)
		from s_emp
		group by dept_id;

在这里插入图片描述

sum():查询s_emp表中每个部门员工的工资总和
		select dept_id,sum(salary)
		from s_emp
		group
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值