按名字排序不行

时间:2018-04-23 11:24:46

标签: mysql sql

我有这个代码返回第n个最大薪水

SELECT first_name,Last_name,salary
FROM Employees E1 
WHERE (N-1) = (
                SELECT COUNT(DISTINCT(E2.Salary)) 
                FROM Employees E2 
                WHERE E2.Salary > E1.Salary
               );

如果它们具有相同的工资,则返回多个记录。 但是,当我尝试按first_name排序时,它仍会返回不按字母顺序排序的结果。

示例输出

Nancy   Greenberg   12000.00
Alberto Errazuriz   12000.00

期望的输出

    Alberto Errazuriz   12000.00
    Nancy   Greenberg   12000.00

我使用了first_name ASC的命令;

1 个答案:

答案 0 :(得分:1)

我认为将-1移动到子查询更简单。将ORDER BY添加到外部查询应该对结果集进行排序:

SELECT first_name, Last_name, salary
FROM Employees E1 
WHERE <N> = (SELECT COUNT(DISTINCT E2.Salary) + 1
             FROM Employees E2 
             WHERE E2.Salary > E1.Salary
            )
ORDER BY first_name;

如果这不起作用,请编辑您的问题并提供样本数据。