javaEEday07-DQL-Select-分组查询
This commit is contained in:
+39
-1
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user