为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

  • 过滤分组

    1、having 子句的使用

    ·求平均工资大于2000的员工

    select deptno,avg(sal) from emp group by deptno having avg(sal)>2000

    2、WHERE 与HAVING 的区别

    ·不能在where 子句中使用组函数

    ·可以在having 子句中使用组函数

    3、where 和having 可以通用的情况

    示例:查询10号部门的平均工资

    select deptno,avg(sal) from emp group by deptno having deptno=10;

    select deptno,avg(sal) from emp where deptno=10 group by deptno;

    having先分组,后过滤

    where 先过滤,后分组


    查看全部
  • group by 子句的使用

    ·group by 子句将表的数据分成若干份

    示例:求每个部门的平均工资,要求显示:部门号,部门的平均工资

    select deptno,avg(sal) from emp group by deptno;

    ·在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中

    ·包含在GROUP BY 子句中的列不必包含在SELECT 列表中

    select a,b,c,组函数(x) from table group by a,b,c;

    select avg(sal) from emp group by deptno;

    select deptno,job,sum(sal) from emp group by deptno,job;

    查看全部
  • 使用分组函数3

    1、分组函数与空值

    ·分组函数会自动忽略空值

    ·举例1:统计员工的平均工资

    select sum(sal)/count(*) 一,sum(sal)/count(sal) 二,avg(sal) 三 from emp;

    ·统计员工的平均奖金

    select sum(comm)/count(*) 一, sum(comm)/count(comm) 二,avg(comm) 三 from emp;

    2、在分组函数中使用NVL函数

    *注意:NVL函数使分组函数无法忽略空值

    select count(*),count(nvl(comm,0)) from emp;


    查看全部
    0 采集 收起 来源:使用分组函数3

    2020-02-27

  • 使用分组函数2

    WM_CONCAT 行转列

    select deptno,wm_concat(ename) from emp group by deptno;


    查看全部
    0 采集 收起 来源:使用分组函数2

    2020-02-27

  • 使用分组函数1

    1、AVG(平均值)和SUM(合计)函数

    ·求出员工的平均工资和工资的总额

    select avg(sal),sum(sal) from emp;

    2、MIN(最小值)和MAX(最大值)函数

    ·求出员工工资的最大值和最小值

    select max(sal),min(sal) from emp;

    3、COUNT(计数)函数

    ·求出员工的总人数

    select count(*) from emp;

    select count(empno) from emp;

    4、DISTINCT 关键字(用于去掉重复的记录)

    ·求出部门数

    select count(distinct deptno) from emp;


    查看全部
    0 采集 收起 来源:使用分组函数1

    2020-02-27

  • 分组函数的概念

    1、什么是分组函数

    ·分组函数作用于一组数据,并对一组数据返回一个值。

    2、常用的分组函数

    ·AVG 平均值

    ·SUM 求和

    ·MIN 最小值

    ·MAX 最大值

    ·COUNT 求个数

    ·WM_CONCAT 行转列

    查看全部
  • 课程目标

    1、分组函数的概念

    2、分组函数的使用

    3、使用GROUP BY 子句数据分组

    4、使用HAVING 子句过滤分组结果集

    5、在分组查询中使用order by 子句

    6、group by 语句的增强

    7、SQL*Plus的报表功能


    查看全部
    1. having和from的区别  having后可以跟组函数,from后面不可以

    2. 单行子查询  多行子查询??

    查看全部
  • 可以使用子查询的位置  where select having from 

    不可以 group by

    查看全部
  • 自连接的核心,通过别名把一张表当做多张表

    查看全部
    0 采集 收起 来源:[Oracle] 自连接

    2020-02-25

  • 左外连接在右边条件后 加 (+)

    右外连接在左边条件后 加 (+) 反着

    查看全部
    0 采集 收起 来源:[Oracle] 外连接

    2020-02-25

  • 存疑

    group by 后面跟 rollup(a,b)函数  多用于报表

    查看全部
  • order by 可以根据 列名、别名、select后的序号、表达式排列

    默认按照降序排列   desc升序

    查看全部
  • select列表中,不在组函数中的字段,必须在group by子句中

    查看全部
  • 分组函数自动忽略结果中的空值

    要使空值不被忽略,使用nvl函数  nul(列名,返回值)(列为空就返回设置的返回值,不为空直接返回列中的值)

    查看全部
    0 采集 收起 来源:使用分组函数3

    2020-02-24

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!