分组查询group by函数

方案一:
使用union对查询进行连接

--统计员工人数,员工工资总和,平均工资,最高工资,最低工资
select '武汉' 地区,COUNT (*) 员工数量,sum(peopleSalary ) 员工工资总和,AVG (peopleSalary ) 平均工资,max(peopleSalary) 最高工资,MIN(peopleSalary ) 最低工资 from people where PeopleAddress ='北京'
UNION 
select '北京' 地区,COUNT (*) 员工数量,sum(peopleSalary ) 员工工资总和,AVG (peopleSalary ) 平均工资,max(peopleSalary) 最高工资,MIN(peopleSalary ) 最低工资 from people where PeopleAddress ='武汉';

方案二:
使用group by函数

--group by函数

--以地区统计1985年以前员工人数,员工工资总和,平均工资,最高工资,最低工资
select PeopleAddress ,COUNT (*) 员工数量,sum(peopleSalary ) 员工工资总和,AVG (peopleSalary ) 平均工资,max(peopleSalary) 最高工资,MIN(peopleSalary ) 最低工资 from people 
where PeopleBirth <'1985-1-1'
group by PeopleAddress ;

--以地区统计1985年以前员工人数,员工工资总和,平均工资,最高工资,最低工资,要求所在地区人数大于等于两人的做显示

select PeopleAddress ,COUNT (*) 员工数量,sum(peopleSalary ) 员工工资总和,AVG (peopleSalary ) 平均工资,max(peopleSalary) 最高工资,MIN(peopleSalary ) 最低工资 from people 
where PeopleBirth <'1985-1-1'
group by PeopleAddress
having count(*)>=2 ;
--使用了group by聚合函数,如果条件中需要聚合函数,需要将条件放在group by后面,使用关键词having

posted @ 2022-07-03 17:49  来个橙子  阅读(211)  评论(0)    收藏  举报