如何在oracle中找到emp
表中前三位最高薪水?如何在oracle的emp表中找到前三名最高薪水?
回答
SELECT *FROM
(
SELECT *FROM emp
ORDER BY Salary desc
)
WHERE rownum <= 3
ORDER BY Salary ;
像下面这样的东西应该这样做。
SELECT Name, Salary
FROM
(
SELECT Name, Salary
FROM emp
ORDER BY Salary desc
)
WHERE rownum <= 3
ORDER BY Salary ;
简单的回答一个愚蠢的问题。 – amphetamachine 2010-05-31 12:19:46
你可以试试。
SELECT * FROM
(
SELECT EMPLOYEE, LAST_NAME, SALARY,
RANK() OVER (ORDER BY SALARY DESC) EMPRANK
FROM emp
)
WHERE emprank <= 3;
这将给予正确的输出,即使有两个员工一样的工资maximun
SELECT salary,first_name||' '||last_name "Name of the employee"
FROM hr.employees
WHERE rownum <= 3
ORDER BY salary desc ;
这肯定会给出前3名工资获得雇员的名字以及他们的工资 – 2012-02-25 09:42:31
-1这将无法可靠地工作,请参见[手册](http://docs.oracle.com) .com/cd/E11882_01/server.112/e26088/pseudocolumns009.htm#i1006297)以解释为什么不应该以这种方式使用ROWNUM。 – 2013-07-05 15:31:54
SELECT * FROM
(
SELECT EMPLOYEE, LAST_NAME, SALARY,
DENSE_RANK() OVER (ORDER BY SALARY DESC) EMPRANK
FROM emp
)
WHERE emprank <= 3;
SELECT a.ename, b.sal
FROM emp a, emp b
WHERE a.empno = b.empno
AND
3 > (SELECT count(*) FROM emp b
WHERE a.sal = b.sal);
不使用TOP,ROWID,排名等与最古老的SQL还
作品Select ename, job, sal from emp
where sal >=(select max(sal) from emp
where sal < (select max(sal) from emp
where sal < (select max(sal) from emp)))
order by sal;
ENAME JOB SAL
---------- --------- ----------
KING PRESIDENT 5000
FORD ANALYST 3000
SCOTT ANALYST 3000
select top 3 * from emp order by sal desc
select empno,salary from emp e
where 3 > (Select count(salary) from emp
where e.salary < salary)
Another way :
select * from
(
select empno,salary,
Rank() over(order by salary desc) as rank from emp)
where Rank <= 3;
Another Way :
select * from
(
select empno,salary from emp
order by salary desc
)
where rownum <= 3;
请格式化您发布的SQL。选择代码并点击{}按钮。 – OCDan 2013-07-05 12:55:50
-1此答案不添加任何新信息。 – 2013-07-05 15:32:56
SELECT * FROM
(
SELECT ename, sal,
DENSE_RANK() OVER (ORDER BY SAL DESC) EMPRANK
FROM emp
)
emp1 WHERE emprank <=5
SELECT DISTINCT(salary) FROM emp order by salary asc limit 0 ,3
上面的查询给出了DISTINCT三个最高的薪水。
SELECT Name, Salary
FROM
(
SELECT Name, Salary
FROM emp
ORDER BY Salary desc
)
WHERE rownum <= 3
ORDER BY Salary ;
SELECT * FROM Employees
WHERE rownum <= 3
ORDER BY Salary ;
溶液用于通过寻找前5薪水平方英寸升服务器从薪金顺序
选择顶(1)的名称,从薪金薪水其中薪水(选择不同的顶部(3)的工资薪水盘)
请尝试充实你的答案,并改进格式。还要考虑你的答案是否与其他答案中缺乏的信息有关。 – 2014-05-02 21:16:43
选择顶部(3)分钟(名称),TotalSalary,ROW_NUMBER()OVER(由TotalSalary倒序)AS ROWNUMBER FROM tbl_EmployeeProfile组由TotalSalary
限制查询仅显示前3名最高薪酬员工。 :查询«甲骨文的PL/SQL
create table employee(
emp_no integer primary key
,lastname varchar2(20) not null
,salary number(3)
);
insert into employee(emp_no,lastname,salary)
values(1,'Tomy',2);
insert into employee(emp_no,lastname,salary)
values(2,'Jacky',3);
insert into employee(emp_no,lastname,salary)
values(3,'Joey',4);
insert into employee(emp_no,lastname,salary)
values(4,'Janey',5);
select lastname, salary
from (SELECT lastname, salary FROM employee ORDER BY salary DESC)
where rownum <= 3 ;
输出
LASTNAME SALARY
-------------------- ----------
Janey 5
Joey 4
Jacky 3
drop table employee;
你可以使用DBMS_STAT_FUNCS.Summary
:
SET SERVEROUTPUT ON;
DECLARE
s DBMS_STAT_FUNCS.SummaryType;
BEGIN
DBMS_STAT_FUNCS.SUMMARY('HR', 'EMPLOYEES', 'SALARY',3, s);
DBMS_OUTPUT.put_line('Top 3: ' || s.top_5_values(1) || '-'
|| s.top_5_values(2) || '-' || s.top_5_values(3));
END;
/
输出:
Top 3: 24000-17000-17000
- 1. 如何在emp表中获得两个最高薪水?
- 2. 第三高的薪水SQL
- 3. 找不到在SQL Server中的第二个最高的薪水
- 4. 找到谁得到的最高薪水中的每个位置
- 5. SQL查询,找出第三高的薪水涉及多个表
- 6. Sql查询找到更高的薪水
- 7. 如何找到第五最高的薪水在SQL Server中的单个查询
- 8. 选择薪水最高
- 9. 如何在mysql中找到第二高薪水
- 10. 获得第三高薪水的员工
- 11. 在没有限制的情况下在mysql中找到第三高薪水
- 12. Logistic回归:如何找到权重最高的前三名?
- 13. 如何找到业务中的R分组的第二最高的薪水
- 14. 如何检索第三最高的薪水,以及与从sql服务器中的表中的雇员姓名
- 15. 得到表中的最高薪水和匹配日期
- 16. 如何找到重复的薪水
- 17. 如何找到薪水第二高的员工?
- 18. 无法找到表emp第二高的薪水,而无需使用限制和子查询
- 19. SQL查询有关薪水最高找到
- 20. 解释如何找到了在表emp第三MAX工资
- 21. 系明智的薪水最高+2000
- 22. 我如何从员工表中找到第二大薪水?
- 23. 如何找到在mysql中的第二和第三高的薪水,而无需使用子查询
- 24. 通过SQL查询查找每个lanauges的最高薪水
- 25. 如何为每个人选择最高的N个薪水?
- 26. 如何从该表中选择最后7个最高薪资?
- 27. 排序从最高到最低,为前三名,在每个州
- 28. 查找没有使用顶级薪资最高的前2名员工
- 29. 从列表中查找薪水信息名称
- 30. 如何找到所有最高的第五名受薪雇员在SQL Server中的单个查询
为什么在WHERE之后需要ORDER BY薪水? – Samra 2014-01-29 04:24:30
,因为薪水将按降序排列,没有它 – Raja 2016-04-14 17:49:15