分组查询
分组查询
(1)根据员工所在地区分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资
方案一:使用union(此方案需要知道所有地区,分别查询出所有地区数据,然后使用union拼接起来。)
select '武汉' 地区,COUNT(*) 人数,MAX(PeopleSalary) 最高工资 ,MIN(PeopleSalary) 最低工资,SUM(PeopleSalary) 工资总和,AVG(PeopleSalary) 平均工资 from People where PeopkeAddress ='武汉' union select '北京' 地区,COUNT(*) 人数,MAX(PeopleSalary) 最高工资 ,MIN(PeopleSalary) 最低工资,SUM(PeopleSalary) 工资总和,AVG(PeopleSalary) 平均工资 from People where PeopkeAddress ='北京' --...其他地区数据 --...其他地区数据
方案二:使用Group by
select PeopleAddress 地区,COUNT(*) 人数,MAX(PeopleSalary) 最高工资 ,MIN(PeopleSalary) 最低工资,SUM(PeopleSalary) 工资总和,AVG(PeopleSalary) 平均工资 from People Group by PeopkeAddress
(2)根据员工所在地区分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资,1985年度以后出生的员工不参与统计。
select select PeopleAddress 地区,COUNT(*) 人数,MAX(PeopleSalary) 最高工资 ,MIN(PeopleSalary) 最低工资,SUM(PeopleSalary) 工资总和,AVG(PeopleSalary) 平均工资 from People where PeopleBirth < '1985-1-1' group by PeopleAddress
(3)根据员工所在地区分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资,要求筛选出员工人数至少2人及其以上的记录,并且1985年后出身的员工不参与统计。
select select PeopleAddress 地区,COUNT(*) 人数,MAX(PeopleSalary) 最高工资 ,MIN(PeopleSalary) 最低工资,SUM(PeopleSalary) 工资总和,AVG(PeopleSalary) 平均工资 from People where PeopleBirth < '1985-1-1' group by PeopleAddress having count(*) >=2

浙公网安备 33010602011771号