现有一个数据库,其中有三张表:
员工(工号,姓名,性别,年龄,部门)
开发项目(项目编号,项目名称)
参与的项目(工号,项目编号,考核评分)
请按以下需求写出对应的SQL语句:
[1] 查询 工号=15946876 的员工信息,包括:姓名、年龄、部门
[2] 统计一共有多少名员工记录
[3] 查询所参与的项目在5个以上(包括5个)的员工的工号,姓名,平均考核评分和参与的项目的个数,结果按平均考核评分降序排序
现有一个数据库,其中有三张表:
员工(工号,姓名,性别,年龄,部门)
开发项目(项目编号,项目名称)
参与的项目(工号,项目编号,考核评分)
请按以下需求写出对应的SQL语句:
[1] 查询 工号=15946876 的员工信息,包括:姓名、年龄、部门
[2] 统计一共有多少名员工记录
[3] 查询所参与的项目在5个以上(包括5个)的员工的工号,姓名,平均考核评分和参与的项目的个数,结果按平均考核评分降序排序
[1] 查询 工号=15946876 的员工信息,包括:姓名、年龄、部门
答: select 姓名,年龄,部门 from 员工 where 工号=“15946876” 注意:工号是數字的话要改成15946876
[2] 统计一共有多少名员工记录
答: select count(*) from 员工
[3] 查询所参与的项目在5个以上(包括5个)的员工的工号,姓名,平均考核评分和参与的项目的个数,结果按平均考核评分降序排序答:
select c.工号,c.姓名,count(c.工号) as 项目个数,avg(p.考核评分 )from 员工 as c
join 参与的项目 as p on p.工号 = c.工号
group by c.工号
having count(c.工号) > 4
order by avg(p.考核评分 ) desc
1.select * from 员工 where 工号=15946876 //注意工号如果是字符串类型要加单引号
2.select count(工号) from 员工
3.
select c.工号,count(c.工号) as 项目个数,c.姓名,p.考核评分 from 员工 as c full join 参与的项目 as p on p.工号 = c.工号
group by c.工号,count(c.工号) as 项目个数,c.姓名,p.考核评分
having count(c.工号) > 5
order by p.考核评分 desc
[1] select 姓名,年龄,部门 from 员工 where 工号=15946876 注意:工号是字符串的话要改成'15946876'
[2]select count(*) from 员工
[3]select A.工号,A.姓名,C.Y/C.X,C.X from 员工 A left join (select B.工号,SUM(考核评分) Y,count(B.项目编号) X from 参于的项目 B group by B.ID) C on C.工号=A.工号 where C.X>=5