专栏首页eadelaoracle--groupby分组学习

oracle--groupby分组学习

使用group by分组
        在多行函数中不能直接使用普通字段,除非group by
        在多行函数中不能直接使用单行函数,除非group by
        group by学习:
             ---1、使用group by进行数据分组 select 多行函数,分组字段 from 表名 group by 分组字段
             ---2、多字段进行分组的时候,按照字段顺序进行分组,第一条件分组完成后,继续使用其他条件依次分组。
             ---3、group by依然可以和order by 联合使用
             ---4、可以和单行函数联合进行分组,注意使用了单行函数那么在查询语句中必须也要使用
        查询最高工资和员工数
          select max(sal),count(*) from emp
        查询不同部门的最高工资
          select * from emp order by deptno
          select  deptno,max(sal) from emp group by deptno--使用group进行分组查询,分组的字段可以出现在查询中,其他字段依然不可以
        查询不同工作岗位的员工数
          select * from emp for update
          select lower(job),count(*) from emp group by lower(job)--使用单行函数进行分组
        查询不同部门的不同工作岗位的人数
          select deptno,job ,count(*) from emp group by deptno,job--使用多字段组合进行分组
          select deptno,job ,count(*) from emp group by deptno,job order by deptno
        查询不同部门的不同工作岗位的并且人数大于1的信息
          select count(*) from emp where count(*)>3 group by deptno
          select deptno,job ,count(*) from emp where count(*)>1 group by deptno,job order by deptno
        查询部门号大于10的不同部门的不同工作岗位的人数
          select deptno,job ,count(*) from  emp where deptno>10 group by deptno,job order by deptno
        使用having进行分组后筛选
        having学习:
             --1、使用group by分组后在进行数据筛选的时候,where中不能出现多行函数,所以使用新的关键字having进行条件筛选
             --2、where条件筛选的执行顺序:from-->where--->group -->select
             --3、having条件筛选的执行顺序:from-->group by -->having-->select
             --4、where的执行效率比having要高,能使用where的情况下尽量不要使用having
        查询不同部门的不同工作岗位的并且人数大于1的信息
        使用where语句进行筛选
        where条件语句sql执行顺序:from-->where--->group -->select
          select count(*) from emp where count(*)>1 group by deptno,job
        使用having语句进行筛选
        having条件语句的执行顺序:from-->group by -->having-->select
          select deptno, count(*) from emp  group by deptno having count(*)>5
          select deptno,job ,count(*) from  emp  group by deptno,job  having deptno>10 order by deptno

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • oracle--索引

    eadela
  • oracle--多表联合查询sql92版

    eadela
  • oracle--序列&视图&索引&视图&可视化操作&分页&数据库备份

    --oracle学习内容 --oracle的管理系统学习 --oracle的数据管理学习 --oracle的用户管理 --oracle二维表管理 --oracl...

    eadela
  • MySql监控分析视图-sys schema

    关于MySQL的性能监控和问题诊断,我们一般都从performance_schema中去获取想要的数据,在MySQL5.7.7版本中新增sys schema,它...

    MySQL数据库技术栈
  • linq中order by 和group by (含lambda表达式实现)以及综合案例

    linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来...

    yaphetsfang
  • 【iOS】chimera13指日可待,libhooker基板独立啦

    如果之前是chimera1n环境(就是checkra1n越狱,chimera越狱环境,依赖substitute+libhooker)请看下面步骤:

    zby1101
  • Chrome V8类型混淆型远程代码执行漏洞(CVE-2020-6418)

    2019年2月25日,谷歌Chrome浏览器与微软Edge浏览器发布了安全更新,在Google Chrome浏览器80.0.3987.122以下与Mic...

    洛米唯熊
  • MYSQL多表查询与事务

    select * from emp,dept where emp.`dept_id` = dept.`id`;#设置过滤条件(隐式内连接)

    嘘、小点声
  • 使用sql*plus编辑sql文本(r4笔记第53天)

    工作中可能会经常实用工具来编辑sql 文本,实用sql*plus来编辑的机会比较少,但是这些也是硬功夫,一旦有需要手工编辑,其实发现也是很容易的。 关于编辑使用...

    jeanron100
  • KVM之CPU虚拟化

    虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Ope...

    惨绿少年

扫码关注云+社区

领取腾讯云代金券