MySQL查询以查找所需的第二个最高薪水解释

时间:2018-08-13 06:32:06

标签: mysql

谁能解释下面的查询如何工作?

这是什么概念?

SELECT salary FROM (SELECT salary FROM employees ORDER BY salary DESC LIMIT 2) AS Emp 
ORDER BY salary LIMIT 1;

1 个答案:

答案 0 :(得分:1)

 env:
      - name: MONGO_INITDB_ROOT_PASSWORD
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: password

您的第一个/子查询查询返回了薪金列的2个薪水(如您所说的限制2),因为您按降序对其进行排序,这就是为什么它将返回最后2个大薪水

然后,第二个查询/主查询将在返回的第一个查询的第2行中选择一个,并且将从第2个薪水中返回最小值,因为默认情况下它是按升序排列的。

SELECT salary FROM employees ORDER BY salary DESC LIMIT 2

例如:薪水列有10、20、30、35条记录

和 主要查询

SELECT salary FROM 
(SELECT salary FROM employees ORDER BY salary DESC LIMIT 2)
 AS Emp ORDER BY salary LIMIT 1;

这35和30的输出

然后主要

SELECT salary FROM employees ORDER BY salary DESC LIMIT 2--then