数据库查询语句问题,查询按部门分组后每个部门薪水最高的人

select ename,sal from emp join (select deptno,max(sal) max_sal from emp group by deptno) t on (emp.sal=t.max_sal and emp.deptno=t.deptno);
这样写可以查出来,但是结果里面看不到部门编号。
下面是我写的结果带部门编号的,却是错的
select deptno,ename,sal from emp join (select deptno,max(sal) max_sal from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno);

请教下大家为什么错了啊?

你的select 后面的 deptno应该加个emp整个语句应该这样
select emp.deptno,ename,sal from emp join (select deptno,max(sal) max_sal from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno);
温馨提示:内容为网友见解,仅供参考
无其他回答

MySQL查询列必须和group by字段一致吗?
在MySQL中,当你使用`GROUP BY`语句时,目的是为了将数据集按照指定的列进行分组。接着,你通常会接着使用聚合函数(如`COUNT()`,`SUM()`,`AVG()`等)来计算每组的数据统计值。那么,问题来了:查询列是否必须和`GROUP BY`字段一致呢?让我们先通过一个场景来理解这个问题。假设我们想要查询每...

Oracle之ROW_NUMBER函数使用
row_number() over(ORDER BY sal DESC) hsal FROM emp)WHERE hsal >=5;此语句可获取工资排名在五名之后的员工信息。然而,实际工作中,我们可能需要在分组后进行排名,比如按部门分组查看每个部门的工资排名。ROW_NUMBER函数同样适用于这种情况。其语法为:ROW_NUMBER() OVER (PARTITION BY COL1 ORDE...

用sql语句,查询每个班级成绩排名前三名的学生姓名
思路是先分组后按成绩排序

能否用SQL语句实现"分组查询后,取各小组最上面一条记录"?
SELECT 公司ID, 人才ID, 时间 FROM TABLE WHERE 时间 = (SELECT MAX(A.时间) FROM TABLE A WHERE A.公司ID= B.公司ID)上面可以得到每个公司最新入职的人才的记录,如果这个公司最新入职的有多个人同样也可以查出来。

...查询部门平均工资,平且显示工资等级,按部门分组,sql语句怎么写_百度...
select t1.deptno, t1.dname, t1.avgsal, max(case when t1.avgsal between t2.losal and t2.hisal then t2.grade end) grade from (select a.deptno, b.dname, round(avg(a.sal), 2) avgsal from emp a, dept b where a.deptno = b.deptno group by...

数据库查询每个部门的基础薪平均值
在进行数据库查询时,为了获取每个部门的基础薪资平均值,可以采用多种SQL语句实现。首先,通过指定特定部门,可以直接查询该部门的工资平均值,如下所示:select avg(工资) from 表名 where 部门=**;这里,"表名"需要替换为实际的数据库表名称,"部门"是表中的一个字段名,用来表示部门,"**"是您...

第七章 高级查询
1.查询每个部门的部门编号,部门名称,部门人数,最高工资,最低工资,工资总和,平均工资。select d.deptno,dname,COUNT(e.deptno) 部门人数,max(sal) 最高工资,min(sal) 最低工资,sum(sal) 工资总和,avg(sal) 平均工资FROM emp e,dept dwhere e.deptno=d.deptno...

oracle,从"雇员"表中返回平均薪资的最大值和最小值,并按部门分组...
as min_avg_salary FROM (SELECT department_id, AVG(salary) as avg_salary FROM employees GROUP BY department_id )GROUP BY department_id;该查询将从 "employees" 表中选择所有的员工,并计算每个部门的平均薪资。接着,它将根据部门ID对结果进行分组,并查找每个组的最大和最小平均薪资。

...查询部门平均工资,平且显示工资等级,按部门分组,sql语句怎么写_百度...
Select deptno,avg(sal) "部门平均工资",case when avg(sal)>a then 1 when avg(sal)>b then 2 else 3 end 工资等级 from emp group by deptno

SQL Server:十一、分组查询:使用 group by 命令
一、分组查询 为了根据员工所在地区分组统计,我们需实现如下功能:统计各城市(北京、上海、广州)的员工人数、工资总和、平均工资、最高工资和最低工资。sql Example:Select * from People 二、使用`Union`合并查询结果 `Union`允许合并多个查询结果,前提是列数一致且数据类型兼容。每个`select`语句的`...

相似回答