博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七、分组函数/聚合函数/多行处理函数
阅读量:2046 次
发布时间:2019-04-28

本文共 1227 字,大约阅读时间需要 4 分钟。

7、分组函数/聚合函数/多行处理函数

count

取得记录数

sum

求和

avg

取平均

max

取最大的数

min

取最小的数

 

注意:分组函数自动忽略空值,不需要手动的加where条件排除空值。

select count(*) from emp where xxx; 符合条件的所有记录总数。

select count(comm) from emp;     comm这个字段中不为空的元素总数。

 

注意:分组函数不能直接使用在where关键字后面。

mysql> select ename,sal from emp where sal > avg(sal);

ERROR 1111 (HY000): Invalid use of group function

7.1、count

  1. 取得所有的员工数

select count(*) from emp;

Count(*)表示取得所有记录,忽略null,为null的值也会取得

     2.取得津贴不为null员工数

select count(comm) from emp;

 

采用count(字段名称),不会取得为null的记录

    3.取得工作岗位的个数

select count(distinct job ) from emp;     #distinct 不同种类的

 

 

7.2、sum

  1. Sum可以取得某一个列的和,null会被忽略
  2. 取得薪水的合计

select sum(sal) from emp;

 

  1. 取得津贴的合计

select sum(comm) from emp;

 

null会被忽略

     2.取得薪水的合计(sal+comm)

select sum(sal+comm) from emp;

 

从以上结果来看,不正确,原因在于comm字段有null值,所以无法计算,sum会忽略掉不计算有null的行,正确的做法是将comm字段转换成0

select sum(sal+IFNULL(comm, 0)) from emp;

 

7.3、avg

取得某一列的平均值

  1. 取得平均薪水

select avg(sal) from emp;

 

 

7.4、max

取得某个一列的最大值

  1. 取得最高薪水

select max(sal) from emp;

 

     2.取得最晚入职得员工

select max(str_to_date (hiredate, '%Y-%m-%d')) from emp;

 

7.5、min

取得某个一列的最小值

  1. 取得最低薪水

select min(sal) from emp;

 

  1. 取得最早入职得员工(可以不使用str_to_date转换

select min(str_to_date(hiredate, '%Y-%m-%d')) from emp;

 

 

7.6、组合聚合函数

可以将这些聚合函数都放到select中一起使用

select count(*),sum(sal),avg(sal),max(sal),min(sal) from emp;

 

转载地址:http://ryoof.baihongyu.com/

你可能感兴趣的文章
走进JavaWeb技术世界11:单元测试框架Junit
查看>>
走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
查看>>
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
查看>>
走进JavaWeb技术世界14:Mybatis入门
查看>>
走进JavaWeb技术世界16:极简配置的SpringBoot
查看>>
初探Java设计模式1:创建型模式(工厂,单例等)
查看>>
初探Java设计模式2:结构型模式(代理模式,适配器模式等)
查看>>
初探Java设计模式3:行为型模式(策略,观察者等)
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南1:并发基础与Java多线程
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>