如何编写一个查询,其中只返回具有最高或最低列值的选定行数.
即5名受薪员工的报告?
任何人都可以告诉我如何从 Oracle中的表中找出第N个最大的条目?
像最大的我们可以使用 MAX(column_name)有没有有效的方法来找到第n个最大的?
那是一个众所周知的问题.考虑以下
EmployeeID EmployeeName Department Salary
----------- --------------- --------------- ---------
1 T Cook Finance 40000.00
2 D Michael Finance 25000.00
3 A Smith Finance 25000.00
4 D Adams Finance 15000.00
5 M Williams IT 80000.00
6 D Jones IT 40000.00
7 J Miller IT 50000.00
8 L Lewis IT 50000.00
9 A Anderson Back-Office 25000.00
10 S Martin Back-Office 15000.00
11 J Garcia Back-Office 15000.00
12 T Clerk Back-Office 10000.00
Run Code Online (Sandbox Code Playgroud)
我们需要找出第二高的薪水
With Cte As
(
Select
level
,Department
,Max(Salary)
From plc2_employees …Run Code Online (Sandbox Code Playgroud) 我有四张桌子:
现在根据问题,我必须展示收入第二高的coursename
根据上面的问题,这是我的解决方案
select c.course_name, c.course_fees*count(c.course_name) Total_Revenue
from course c join(batch b join enrollment e
on b.batch_id=e.batch_id)
on c.course_id=b.course_id
group by c.course_name, c.course_fees
order by Total_Revenue desc ;
Run Code Online (Sandbox Code Playgroud)
现在问题是我无法从上面的代码中从结果表中提取第二行.如何从上面生成的表中提取第二行?(特别感谢Oracle 11g的答案)
如何从员工表中查找员工领取的第二最高工资。是否可以通过ROWNUM函数查找。
示例表:
S.no Name employee_id salary
201 Steven 100 1000
202 Alexander 101 2500
203 Daniel 102 5000
204 John 103 3000
205 Ishanth 104 8000
Run Code Online (Sandbox Code Playgroud)