008、分组函数、聚合函数、多行处理函数

时间:2021-10-11
本文章向大家介绍008、分组函数、聚合函数、多行处理函数,主要包括008、分组函数、聚合函数、多行处理函数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

 

注意: 分组函数自动忽略空值,不需要手动的加 where 条件排除空值。
  select count(*) from emp where xxx;       符合条件的所有记录总数。
  select count(comm) from emp;               comm 这个字段中不为空的元素总数。
注意:分组函数不能直接使用在 where 关键字后面。
# ---------------------------------8、分组函数/聚合函数/多行处理函数-------------------
# 取得所有的员工数
select count(*) from emp;

# 取得津贴不为 null 员工数
# 采用 count(字段名称),不会取得为 null 的记录
select count(comm) from emp;
select count(*) from emp where comm is not null;

# 取得工作岗位的个数
# distinct 去掉重复的项
select count(distinct job) from emp;

# 取得薪水的合计
select sum(sal) from emp;

# 取得津贴的合计
select sum(comm) from emp;

# 取得薪水的合计(sal+comm)
#  comm 字段有 null 值,所以无法计算,sum 会忽略掉,正确的做法是将 comm 字段转换成 0 。如果为NULL 转换成0 。
select sum(sal+IFNULL(comm, 0)) from emp;


# 取得某一列的平均值
# 取得平均薪水
select avg(sal) from emp;

# 取得最高薪水
select max(sal) from emp;

# 取得最低薪水
select min(sal) from emp;


# 取得最晚入职得员工
select max(str_to_date(hiredate, '%Y-%m-%d')) from emp;
select ename,hiredate from emp order by hiredate desc limit 1;

# 取得最早入职得员工
select min(str_to_date(hiredate, '%Y-%m-%d')) from emp;
select ename,hiredate from emp order by hiredate asc limit 1;

# 取得入职时间前3的员工
select ename,hiredate from emp order by hiredate asc limit 3;

# 可以将这些聚合函数都放到 select 中一起使用
select count(*),sum(sal),avg(sal),max(sal),min(sal) from emp;

原文地址:https://www.cnblogs.com/qq-2780619724/p/15394220.html