SQL的作业的题与答案代码:连接查询,分组查询,having,统计不同年份人的平均年龄

create table yuangong2(
YG_ID int primary key identity(1,1),
YG_name nvarchar(50) not null unique,
YG_sex nvarchar(20) check(YG_sex='男' or YG_sex='女'),
YG_ruzhishijian datetime default getdate(),
zhiwei_id int,
YG_age int check(YG_age>=18 and YG_age<=60),
YG_gongzi decimal(18,2) check(YG_gongzi>2000)
)
create table zhiwei2(
zhiwei_id int primary key identity(1,1),
zhiwei_name nvarchar(50) not null unique
)
alter table yuangong2 add foreign key(zhiwei_id) references zhiwei2(zhiwei_id)
insert into zhiwei2 values('销售部')
insert into zhiwei2 values('人事部')
insert into zhiwei2 values('行政部')
insert into zhiwei2 values('保安部')
insert into zhiwei2 values('后勤部')
insert into zhiwei2 values('经理')
insert into zhiwei2 values('财务部')
insert into yuangong2 values('张三','男','1999-9-9',1,22,8888)
insert into yuangong2 values('李四','男','1998-2-9',2,22,7888)
insert into yuangong2 values('王五','男','1997-9-9',3,22,6888)
insert into yuangong2 values('刘备','男','1996-8-9',4,22,5888)
insert into yuangong2 values('孙尚香','女','1995-7-9',5,22,4888)
insert into yuangong2 values('张飞','男','1994-9-9',4,22,3888)
insert into yuangong2 values('关羽','男','1999-4-9',3,22,2888)
insert into yuangong2 values('孙策','男','1999-6-9',2,22,1888)
drop table yuangong2
select * from yuangong2
select * from zhiwei2
1、统计“销售部(salesman)”员工人员,( where yuangong2.ZHIWEI_ID=1)
select count(*) from yuangong2 where yuangong2.ZHIWEI_ID=1
2、统计“人事部”和“行政部”的员工人数(where ZHIWEI_ID=2 or zhiwei_id=3
group by zhiwei_id,select * from yuangong2)
select zhiwei_id,count(*) from yuangong2 where ZHIWEI_ID=2 or zhiwei_id=3
group by zhiwei_id
select * from yuangong2
3、统计“经理”的人数(where zhiwei_id=7,id为7对应“经理” 因为 YG_ID int primary key identity(1,1) )
select COUNT(*) from yuangong2 where zhiwei_id=7
4、查询是4月份入职的员工的人数
select COUNT(*) from yuangong2 where month(YG_ruzhishijian)=4
5、查询"BLAKE"的下属的人数(提示:mgr列里面的数据表示此员工直接领导的员工号)
6、查询所有员工的平均工资
select avg(yg_gongzi) from yuangong2
7、查询所有员工的工资和
select sum(yg_gongzi) from yuangong2
8、查询员工的最高工资
select max(yg_gongzi) from yuangong2
9、查询员工的最低工资
select min(yg_gongzi) from yuangong2
10、查询员工的最早和最晚入职时间(要求在一个结果集合中显示)
select max(yg_ruzhishijian),min(yg_ruzhishijian) from yuangong2
11、统计每个部门的人数
select zhiwei_id,count(*) from yuangong2 group by zhiwei_id
12、统计每个部门的平均工资
select zhiwei_id,avg(yg_gongzi) from yuangong2 group by zhiwei_id
13、统计每个部门的最高工资
select zhiwei_id,max(yg_gongzi) from yuangong2 group by zhiwei_id
14、统计每个部门的最低工资
select zhiwei_id,min(yg_gongzi) from yuangong2 group by zhiwei_id
15、统计每个部门的最高工资,最低工资
select zhiwei_id,min(yg_gongzi),max(yg_gongzi) from yuangong2 group by zhiwei_id
16、统计每个部门的最高工资与最低工资之差小于3000的信息(显示部门号,最高工资,最低工资)
select zhiwei_id,max(yg_gongzi),min(yg_gongzi) from yuangong2 group by zhiwei_id
having (max(yg_gongzi)-min(yg_gongzi))>3000
17、统计不同职位的在岗人数
select zhiwei_id,count(*) from yuangong2 group by zhiwei_id
18、统计不同年份出生的人的平均年龄
select year(yg_ruzhishijian),avg(year(getdate())-year(yg_ruzhishijian)) from yuangong2
group by year(yg_ruzhishijian)
19、统计不同职位的工资和
select zhiwei_id,sum(yg_gongzi) from yuangong2 group by zhiwei_id