MySQL-任何人都可以解释一下这个查询吗?



我想了解以下查询:

SELECT DISTINCT salary 
FROM employees a 
WHERE 3 >= (
    SELECT COUNT(DISTINCT salary) 
    FROM employees b 
    WHERE b.salary <= a.salary
) 
ORDER BY a.salary DESC;

从内部 SELECT(一个相关的子查询)开始。 将为外部查询中的每一行执行此类查询。 那么它有什么作用呢?

返回小于或等于当前员工工资的唯一工资数。

SELECT COUNT(DISTINCT salary) 
FROM employees b 
WHERE b.salary <= a.salary

那么,给定外部选择的当前行的该数字,它有什么作用? 返回从子查询返回的数字小于或等于 3 的唯一工资(按顺序)。

SELECT DISTINCT salary 
FROM employees a 
WHERE 3 >= (some number)
ORDER BY a.salary DESC;

综上所述,我们得到:

独特的薪水,其中这样的薪水是最差的 3.

我认为

这个查询应该返回 3 个最差的薪水!

相关内容

  • 没有找到相关文章

最新更新