列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
1、先创建要用到的例子表,并在表里面插入记录,在sqlserver中做测试
create table employee(
id int identity(1,1) primary key ,
name varchar(50),
salary bigint,
deptid int);
insert into employee values('zs',1000,1),
insert into employee values('ls',1100,1)
insert into employee values('ww',1100,1)
insert into employee values('zl',900,1)
insert into employee values('zl',1000,2)
insert into employee values('zl',900,2)
insert into employee values('zl',1000,2)
insert into employee values('zl',1100,2)
select * from employee
2、插入记录后的表结构如下:
3、解这题的思路
(1) 首先要求出各个部门的平均工资。
select deptid,avg(salary) avgsal from employee group by deptid
结果如下图
(2)这时我们就要用连合查询,即:select * from ta,tb where ta.name=tb.name,这种形式进行查询,我们把employee表与上面(1)查询出来的结果进行连合查询,找出工资大于平均工资的记录。
select ta.* from employee ta,
(select deptid,avg(salary) avgsal from employee group by deptid)tb
where ta.deptid=tb.deptid and ta.salary>tb.avgsal
结果如下图:
(3)列出工资大于平均工资的员工与部门号。并按部门排序,把上面的(2)代码改成
select ta.deptid,count(*) from employee ta,
(select deptid,avg(salary) avgsal from employee group by deptid)tb
where ta.deptid=tb.deptid and ta.salary>tb.avgsal group by ta.deptid order by ta.deptid
结果如下图:
- 大小: 13.4 KB
- 大小: 4.1 KB
- 大小: 6.7 KB
- 大小: 3.7 KB
分享到:
相关推荐
12. 对于emp,列出各个部门中平均工资高于本部门平均水平的员工数和部门号 在这个查询中,我们使用了子查询来获取每个部门的平均工资,然后使用 WHERE 语句来过滤工资高于平均水平的员工。最后,我们使用 GROUP BY ...
这里的`GROUP BY`子句用于按部门分组,而`HAVING`子句则用于过滤出平均工资大于2500的部门。 #### 8. 查找在平均工资大于2500的部门工作的员工 这个问题可以通过嵌套查询(子查询)的方式来解决。首先找到平均工资...
17. 查询各部门中工资比本部门平均工资高的员工的员工号,姓名和工资: 子查询计算每个部门的平均工资,主查询筛选出工资高于部门平均工资的员工。 18. 查询和姓名中包含字母u的员工在相同部门的员工的员工号和...
12. 对于 emp,列出各个部门中平均工资高于本部门平均水平的员工数和部门号,按部门号排序 SQL语句:SELECT e.deptno, COUNT(*) AS cnt FROM emp e WHERE e.sal > (SELECT AVG(sal) FROM emp WHERE deptno = e....
4. 列出所在部门平均工资高于整个公司平均工资的员工姓名和工资。 - 此问题需要计算公司总体的平均工资作为参照,然后对每个部门进行分组查询,找出高于总体平均工资的部门和员工信息。 5. 用一条SQL语句查询出emp...
聚合函数如`AVG`、`MAX`配合`GROUP BY`用于统计分组后的平均值和最大值,例如`SELECT deptno, avg(sal), max(sal) FROM emp GROUP BY deptno`计算每个部门的平均工资和最高工资。`HAVING`子句用于在聚合函数之后添加...
7. 显示所有平均工资高于1200的部门名和对应的平均工资: 使用`GROUP BY`和`HAVING`子句,结合`AVG(工资)`计算平均工资,`WHERE`子句用于连接worker, depart, salary表。 8. 求出各部门的党员人数: `SELECT 部门...
列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金 此题考查子查询与条件匹配。步骤如下: - 第一步:查询部门30所有员工的薪金。 - 第二步:筛选出薪金高于部门30所有员工的员工。 SQL语句示例: ```...
**题目**: 列出各个部门中工资高于本部门平均工资的员工数量和部门号,并按部门号排序。 **解答**: 为了实现这个功能,可以采用子查询或者关联查询的方式。 1. **子查询**: - 首先计算每个部门的平均工资。 - ...
7. 计算每个员工的年薪,并按年薪排序。`NVL`用于处理可能的佣金NULL值。 8. 这个题目要求找出月薪相同的员工,可以通过比较`sal`字段来实现。 9. 使用子查询找出有员工的部门,通过`IN`操作符筛选出这些部门。 ...
列出各个部门中工资高于本部门平均工资的员工数和部门号,并按部门号排序 **题目解析:** 此题考察子查询、聚合函数、连接以及分组等高级SQL技巧。 **解决方案一:** ```sql SELECT COUNT(*), tid FROM ( ...
报告中还列出了具体的数值,这可能涉及各个岗位的平均薪酬或中位薪酬。平均薪酬是所有员工薪酬总和除以总员工数得到的结果,而中位薪酬是将所有员工薪酬从低到高排序后位于中间位置的数值。中位数相较于平均数更能...
1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...
14. **按平均工资排序** 除了查询每个工种的人数和平均工资,还可以使用ORDER BY AVG(salary)进行排序。 15. **工资差距** 工资的最高值与最低值之差(DIFFERENCE)可以通过MAX(salary) - MIN(salary)得到。 16....
报告还列出了一系列的职业代码和对应的职业方向,这些职业方向覆盖了从销售、市场、财务、公关到技术服务等广泛的岗位,还包括了一些特定行业,如餐饮、房地产、医疗、教育、信息科技等。职业代码可能是用来快速索引...
这在统计每个部门的平均工资时非常有用: ```sql SELECT Department, AVG(Salary) AS AverageSalary FROM Employees GROUP BY Department; ``` 五、连接操作 如果你需要从多个表中获取数据,可以使用JOIN操作。...
这个查询首先计算了所有员工的平均工资,然后找出工资高于这个平均值的员工,并按工资降序排列。 了解并熟练掌握SQL查询语句的基本结构对于任何数据库工作者来说都至关重要,它能帮助我们有效地从数据库中提取所需...
例如,`SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees)` 会找出工资高于员工平均工资的员工。 在压缩包中的`emp.sql`文件,可能是包含SQL语句的脚本,用于创建、修改或查询数据库中...
2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库三范式是什么? 94 5、说出一些数据库优化方面的经验? 95 6、union和union ...
2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库三范式是什么? 94 5、说出一些数据库优化方面的经验? 95 6、union和union ...