diff --git a/mysql-day02-DQL.sql b/mysql-day02-DQL.sql index 739b396..91dabc7 100644 --- a/mysql-day02-DQL.sql +++ b/mysql-day02-DQL.sql @@ -88,4 +88,42 @@ select * from tb_emp where name like '%三%'; -- 条件 : name , gender , entrydate select * from tb_emp where name like '%张%' and gender = 1 - and entrydate between '2000-01-01' and '2010-01-01' + and entrydate between '2000-01-01' and '2010-01-01'; + +-- 分组查询---聚合函数 +-- 1. 统计该企业员工数量 -- count +-- count(字段) +select count(id) from tb_emp; +select count(name) from tb_emp; +select count(job) from tb_emp; -- 注意:所有的聚合函数是排除null计算的!!!! + +select count(*) from tb_emp; + +select count(0) from tb_emp;-- 统计总数推荐count(0) + +-- 2. 统计该企业最早入职的员工的入职日期 +select min(entrydate) from tb_emp; + +-- 3. 统计该企业最近入职的员工的入职日期 +select max(entrydate) from tb_emp; + +-- 4. 统计该企业员工的 ID 之和 +select sum(id) from tb_emp; + +-- 5. 统计该企业员工 ID 的平均值 +select avg(id) from tb_emp; + +-- 6. 不用avg如何计算平均值 +select sum(id)/count(0) from tb_emp; + +-- 分组查询 +-- 1. 根据性别分组 , 统计男性和女性员工的数量 -- count(*) +-- 注意:分组之后能查询的字段只能是分组字段或者聚合函数才有意义 +select gender, count(1) from tb_emp group by gender; + +-- 2. 先查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位 -- count + +select job,count(0) from tb_emp +where entrydate <= '2015-01-01' +group by job +having count(0)>= 2;