Sql 不带MAX函数的查询
我需要做一个查询,以获得没有MAX函数的最高工资的员工。 我搜索了一些方法,发现“rownum”与“orderby”组合在一起,但要正确地执行此操作,我们需要对from子句进行子查询,我不能这样做,因为老师禁止这样做 有人知道解决办法吗Sql 不带MAX函数的查询,sql,oracle,function,max,Sql,Oracle,Function,Max,我需要做一个查询,以获得没有MAX函数的最高工资的员工。 我搜索了一些方法,发现“rownum”与“orderby”组合在一起,但要正确地执行此操作,我们需要对from子句进行子查询,我不能这样做,因为老师禁止这样做 有人知道解决办法吗 感谢并原谅我的英语。您可以使用一些不常用的半连接: WHERE employee.salary >= ALL (...subquery...) 还有许多其他可能性,例如,不存在 SELECT deptno, e1.empno, e1.sal FROM
感谢并原谅我的英语。您可以使用一些不常用的半连接:
WHERE employee.salary >= ALL (...subquery...)
还有许多其他可能性,例如,不存在
SELECT deptno, e1.empno, e1.sal
FROM scott.emp e1
WHERE e1.sal >= ALL (SELECT e2.sal
FROM scott.emp e2
WHERE e2.deptno = 20 -- or e2.deptno = e1.deptno
)
ORDER BY deptno
/
DEPTNO EMPNO SAL
------------------------
10 7839 5000
20 7788 3000
20 7902 3000
返回不使用秩或最大值的薪酬最高的员工
with emp_data as (
select empno,
sal,
deptno,
row_number() over (order by sal desc) as rn
from emp
)
select *
from emp_data
where rn = 1;
这既不使用
max()
也不在from
子句中使用子查询(尽管有人可能会认为使用公共表表达式是绕过“无子查询”要求的一种方法)老师不也禁止在堆栈溢出问题上提问作弊吗?无论这是否是你的家庭作业,在堆栈溢出问题上提问的最低标准都适用。你已经确定了你的问题,现在你做了什么来解决它?您的查询是什么样的,示例数据和最终结果是什么?为什么您的查询不起作用?您收到了什么错误消息(如果有的话)?对不起,我已经在两个小时内测试了查询,但没有成功。我会直接问老师这个问题。Naomi,下次试着更全面一些。问题是from子句中的子查询也是被禁止的。我想。这个解决方案似乎已经被拒绝了。我以为他说他需要做一个子查询,因为max()函数是被禁止的。我想我们会看到的。
with emp_data as (
select empno,
sal,
deptno,
row_number() over (order by sal desc) as rn
from emp
)
select *
from emp_data
where rn = 1;