我有一张员工表,其名称,部门,薪水为列。 我想让第3名员工的工资达到第3个最高类别
empl dept salary
sant x 3000
temb x 4000
porty z 4000
xati x 2000
tres t 3000
werbt z 2000
amiq t 3000
期望的结果: amiq t 3000
查询是什么?
答案 0 :(得分:1)
两种选择:
SELECT * FROM TableName ORDER BY Salary DESC,empl LIMIT 2,1
小提琴示例here。
或强>
SELECT empl,dept,salary
FROM
(SELECT T.*,@rownum := @rownum + 1 AS rank
FROM TableName T,(SELECT @rownum := 0) as R
ORDER BY T.Salary DESC,empl) as T2
WHERE rank=3
结果:
EMPL DEPT SALARY
amiq t 3000
<强>解释强>
查询将选择排名按薪水降序排列的记录。 优势是您可以通过将n替换为n来找到第n个最高薪水(当然,由empl
排序)。
请参阅SQL Fiddle中的结果。
答案 1 :(得分:0)
你可以试试这个
SELECT * FROM (SELECT * FROM table_name b ORDER BY empl) b
ORDER BY salary desc LIMIT 2,1
答案 2 :(得分:0)
SELECT * FROM employee ORDER BY Salary DESC,empl LIMIT 2,1
答案 3 :(得分:0)
简单并排序查询
SELECT * FROM
(
SELECT * FROM <Table Name> b ORDER BY empl desc
) b
ORDER BY salary desc
LIMIT 2,1
<强>结果: - 强>
empl dept salary amiq t 3000