oracle笔记系列(三)

这篇博客深入探讨了Oracle数据库中的Group Function概念,包括其在Lesson 5中的应用。接着,作者介绍了Lesson 6的重点——子查询(嵌套查询),讲解了如何在查询中使用子查询来获取更复杂的数据。最后,博客提到了第七章的内容,讨论了运行时参数及其对数据库操作的影响。

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

lesson 5:Group Function

概念: 所谓 组查询即将数据按照某列或某些列相同的值进行分组,然后对该组数据进行组函数运用,针对每一组返回一个结果。
     group by :在查询表中数据的时候进行分组的关键字
    having :分组之后的进行进一步数据筛选的关键字(having和where的功能类似)
    note:
       ①组函数可以出现的位置: select子句和having 子句
       ②使用group by 是将所有行划分成若干小组。
       ③having子句用来限制组结果的返回。
语法
    select ...
    from ...
    where ...
    group by col_name,col_name
    having ...
    order by...

    group by col_name:将数据按照col_name相同值进行分组
    注:除了select和from之外其他的都不是必须的。

    假如select..from..后面的语句都出现了,那么他们的执行顺序为:
 where-->group by分组-->执行组函数-->having筛选->order by
    
组函数常见有7个:
    avg:求平均值
    count:求总数
    max:最大值
    min:最小值
    sum:求和
    stddev    标准差
    variance  方差

    avg([distinct] column ),sum([distinct] column) :可以作用在存储数字数据的列上。
    max(),min():可以作用在任意类型的数据之上。
        对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。
    count([distinct] column | *) :
    count(*) : 统计表中所有的行数
    count(column) : 返回所有非空行的行数

  组函数出现的位置: ①select后面 ②having后面 ③order by后面
                               ④where后面一定【不能】出现组函数
     注意:如果select/having语句后面出现了组函数,那么select/having后面没有被组函数修饰的列,就必须出现在group by 后面
         
where和having对比:
   ①where和having都是做条件筛选的
   ②where执行的时间比having要早
   ③where后面不能出现组函数,having后面可以出现组函数
   ④where语句要紧跟from后面,having语句要紧跟group by后面

group by和having的关系:
       ①group by可以单独存在,后面可以不出现having语句
       ②having不能单独存在,有需要的话,必须出现在group by后面

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

1)使用组函数:不结合group分组使用(如果不使用group分组的话,那么默认当前查询到的所有数据是一组)
    例如: 查询s_emp表中所有员工的平均工资
    select avg(salary) from s_emp;

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

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

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

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

    查询s_emp表中所有员工的工
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值