0
我想了解以下查询: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;
我想了解以下查询: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发最差的工资!
明白了..谢谢:) –