zoukankan      html  css  js  c++  java
  • 12 group by 与 having

    group by 

    分组函数与字段

    分组函数有 avg sum max min等,select时它们返回的是一个具体的值,而select一个字段返回的是一条记录。

    所以当分组函数与字段同时出现,就需要分组,否则会报错

    出现的字段都必须分组,没有出现的也可以分组。

    例如:

    select count(*),job,ename from emp group by job,ename;

    可以这样去理解:分完组后,每个组中有对应的记录,可以对他们进行sum avg max min等操作。这些操作都是与group by 一起写的。

    而且 select 后面有字段和分组函数时,字段不能写 .* ,必须写清楚

    where 与 having

    where 与 having 都用来筛选,区别是:

    where 用在对字段进行筛选。

    having 用在 有分组函数时(必须有) 对分组函数进行筛选,且不能用having 对字段进行筛选。

    例如:

    --查询不同部门的不同工作岗位且人数大于1的信息:使用having
    select count(*),deptno,job from emp group by deptno,job having count(*)>1 order by deptno;

    举个例子

    --16、统计平均工资大于2000的部门的详细信息
    select d.deptno,dname,loc,avg(sal) "平均工资" from dept d
    join emp e
    on d.deptno=e.deptno
    group by d.deptno,dname,loc
    having  avg(sal) >2000;
    

      

  • 相关阅读:
    你本地测试环境再难搭建也要搭建出来调试代码
    00 alv抬头等
    流水号生产后调用
    ALV 顶栏的按钮设定
    Redis学习总结
    Mybatis总结
    面试题收集
    java 收集2
    关于Spring的69个面试问答——终极列表
    java 面试收集
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12295291.html
Copyright © 2011-2022 走看看