我該如何去查詢員工表中所有員工的第二大薪水?我如何從員工表中找到第二大薪水?
回答
試着這麼做:
SELECT TOP 1 compensation FROM (
SELECT TOP 2 compensation FROM employees
ORDER BY compensation DESC
) AS em ORDER BY compensation ASC
本質:
- 查找降序排列的前2薪水。
- 其中2,找到最高薪水的升序。
- 選定的值是第二高的工資。
如果薪資不明顯,則可以使用SELECT DISTINCT TOP ...
代替。
當TOP 1薪酬由超過1名員工賺取時,此查詢將返回錯誤結果。 – 2010-01-29 08:24:35
如果工資不明顯,您可以使用'SELECT DISTINCT TOP ...'來代替。 – 2010-01-29 08:42:43
試試這個:
SELECT
salary,
employeeid
FROM
employees
ORDER BY
salary DESC
LIMIT 2
然後就得到了第二排。
如果前兩名工資相同,該怎麼辦? – moghya 2018-02-28 18:02:50
也許你應該使用DENSE_RANK
。
SELECT *
FROM (
SELECT
[Salary],
(DENSE_RANK()
OVER
(
ORDER BY [Salary] DESC)) AS rnk
FROM [Table1]
GROUP BY [Num]
) AS A
WHERE A.rnk = 2
試試這個:
SELECT max(salary)
FROM emptable
WHERE salary < (SELECT max(salary)
FROM emptable);
select distinct(t1.sal)
from emp t1
where &n=(select count(distinct(t2.sal)) from emp t2 where t1.sal<=t2.sal);
輸出: 對於n輸入值:如果你想第二高,進入2;如果你想5,輸入n = 3
select * from compensation where Salary = (
select top 1 Salary from (
select top 2 Salary from compensation
group by Salary order by Salary desc) top2
order by Salary)
,這將給你所有行與第二高的薪水,這幾個人可以共享
select max(Salary) from Employee
where Salary
not in (Select Max(Salary) from Employee)
select max(Salary) from Employee
where Salary
not in (Select top4 salary from Employee);
因爲答案如下
MAX(5,6,7,8)
所以第五最高紀錄是DISPLA YED,前四將不被視爲
試試這個:
select max(Emp_Sal)
from Employee a
where 1 = (select count(*)
from Employee b
where b.Emp_Sal > a.Emp_Sal)
如果有重複的工資,這不起作用。比方說,有三個相同的最高工資30000,你發現第二高。 – 2018-01-23 05:18:50
要找到員工的第二個最高的工資,
SELECT MAX(salary) FROM employee
WHERE salary NOT IN (
SELECT MAX (salary) FROM employee
)
要找到員工的第一和第二最高的薪水,
SELECT salary FROM (
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC
) WHERE rownum<=2
此查詢工作正常,因爲我用
其實,如果你有一個表: 1. 100 2. 100 3. 50 您的查詢將返回** **空,這是在這種情況下,不正確的答案 – kvatashydze 2016-10-17 11:17:17
SELECT
TOP 1 salary
FROM
(
SELECT
TOP 2 salary
FROM
employees
) sal
ORDER BY
salary DESC;
select max(sal) from emp
where sal not in (select max(sal) from emp)
OR
select max(salary) from emp table
where sal<(select max(salary)from emp)
大多數其他的答案似乎是分貝具體。
一般的SQL查詢應該如下:
select sal from emp a where N = (select count(distinct sal) from emp b where a.sal <= b.sal)
where N = any value.
與此查詢應該能夠在任何數據庫上運行。
出色答卷+1 – anubhava 2016-11-19 15:00:55
select max(Emp_Sal)
from Employee a
where 1 = (select count(*)
from Employee b
where b.Emp_Sal > a.Emp_Sal)
是跑步的人。
//要選擇的員工的名字,其薪水第二高的
SELECT name
FROM employee WHERE salary =
(SELECT MIN(salary) FROM
(SELECT TOP (2) salary
FROM employee
ORDER BY salary DESC))
簡單的答案:
SELECT sal
FROM emp
ORDER BY sal DESC
LIMIT 1, 1;
將只得到第二最高的薪水。
如果您需要任何第3或第4或第N個值,則可以增加第一個值,然後再加上LIMIT (n-1)
即。對於第四工資:LIMIT 3, 1;
這要工作如果你有兩個薪水相同的記錄。它想給你第二最大。 – 2016-06-02 12:13:17
@ mukeshpatel不同需要應用感謝指出。 – SandeepGodara 2016-06-13 13:14:47
select * from emp
where sal=(select min(sal) from
(select sal from(select distinct sal from emp order by sal desc)
where rownum<=n));
n可以是你想看到你可以看到有n個最高工資誰的那個人* 強大的所有文本字段中的值......
*
- 1. 如何找到薪水第二高的員工?
- 2. 如何在mysql中找到第二高薪水
- 3. 獲得第三高薪水的員工
- 4. 如何找到重複的薪水
- 5. 用於查找第二高薪水的SQL命令
- 6. 如何找到在mysql中的第二和第三高的薪水,而無需使用子查詢
- 7. 如果員工的收入超過他們的薪水水平,我該如何獲得員工詳細信息?
- 8. 第三高的薪水SQL
- 9. 如何找到第五最高的薪水在SQL Server中的單個查詢
- 10. 如何找到Pascal的第二大值
- 11. 在Oracle中如何刪除薪水低於平均工資的員工行?
- 12. Sql查詢找到更高的薪水
- 13. 從列表中查找薪水信息名稱
- 14. 更新薪水字段值與MongoDB員工集合中每個員工的10%
- 15. 尋找失蹤僱員薪金錶
- 16. 如何在oracle的emp表中找到前三名最高薪水?
- 17. 希望第二高的薪水,以便通過部門明智
- 18. 在dpt ID輸入後獲得第二高薪水
- 19. 我想列出所有的導師名字,其薪水高於平均工資,並顯示薪水多大於
- 20. 在員工表中獲得列前3位部門明智的薪水?
- 21. 使用光標查找需要更新薪水的所有員工
- 22. 不同地點的每位員工的薪水百分比
- 23. C#通過點擊按鈕來計算員工薪水?
- 24. 我怎樣才能讓水豚找到第一,第二或第三個按鈕?
- 25. 如何從我的案例的第一張表中找到第二張表中的缺失行?
- 26. 如何獲得表中的第二大或第三大輸入
- 27. 薪水PHP腳本
- 28. 如何從表中獲得第二高?
- 29. SELECT * FROM c其中薪水(從C爲了通過薪金降序組由ROWNUM薪水具有選擇薪水的rownum = 2);
- 30. Python:如何找到列表中第二高的數字?
詳細博客:http://sforsuresh.in/2nd-highest-salary-from-employee-table/ – 2017-07-10 08:34:24