javaEEday07-DQL-Select-分组查询

This commit is contained in:
xx
2026-10-11 14:43:58 +08:00
parent fe46a70e44
commit 62b5f5fd30
+39 -1
View File
@@ -88,4 +88,42 @@ select * from tb_emp where name like '%三%';
-- 条件 : name , gender , entrydate -- 条件 : name , gender , entrydate
select * from tb_emp where name like '%张%' select * from tb_emp where name like '%张%'
and gender = 1 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;