SQL基础题 一、查出每个部门高于部门平均工资的员工名单

--CREATE TABLE 表名称
--(
--列名称1 数据类型,
--列名称2 数据类型,
--列名称3 数据类型,
--....
--)

-- 创建一个职员表
--create table employee(
--id int identity(1,1) primary key ,
--name varchar(50),
--salary bigint,
--deptid int);

select * from employee;


--添加字段:
--alter table 表名 add 字段名 类型
--删除字段:
--alter table 表名 drop column 字段名

--alter table employee add age int;
--alter table employee drop column age;

--alter table employee add age int not null default 0 ;

--1.查出每个部门高于部门平均工资的员工名单
select employee.name 
from employee 
left join(select avg(salary)averg,deptid from employee group by deptid) s
on employee.deptid=s.deptid
where salary>averg;

select employee.name  
from employee,(select AVG(salary) aver,deptid from employee group by deptid)av
where employee.deptid=av.deptid and employee.salary>av.aver;


--2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序。
select COUNT(employee.deptid)cou, employee.deptid 
from employee left join(
select avg(salary)averg,deptid from employee group by deptid) s on employee.deptid=s.deptid
where salary>averg group  by employee.deptid;

select COUNT(employee.deptid)total,employee.deptid 
from employee ,(select AVG(salary)aver,deptid from employee group by deptid)av 
where employee.deptid=av.deptid and employee.salary>av.aver
group by employee.deptid;

--3.求每个部门工资不小于6000的人员的平均值;
select AVG(salary),deptid from employee where salary>=6000 group by deptid;


--4、各部门在各年龄段的平均工资
select AVG(salary),age from employee group by age;

--select * from employee;

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值