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

    技术2022-07-13  61

    --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;

    Processed: 0.008, SQL: 9