mysql 查询部门工资前三的员工

分组前几,就是 多少个比他大的数据,

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版权协议,转载请附上原文出处链接和本声明。