分组前几,就是 多少个比他大的数据,
count 需要去重
SELECT
m.`Name` 'Department',
s.`Name` 'Employee',
s.Salary 'Salary'
FROM
(
SELECT
e.`Name`,
e.DepartmentId,
e.Salary
FROM
employee e
WHERE
(
SELECT
count(DISTINCT b.Salary)
FROM
employee b
WHERE
b.DepartmentId = e.DepartmentId
AND e.Salary < b.Salary
) < 3
) s,
Department m
WHERE
s.DepartmentId = m.Id
ORDER BY
s.DepartmentId ASC,
s.Salary DESC
版权声明:本文为qq_34911446原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。