mysql - 如何在不使用限制的情况下在MySql中找到前5名薪水

标签 mysql

以下查询在 MySql 中不起作用。

SELECT * /*This is the outer query part */
FROM Employee Emp1
WHERE (N-1) = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)

帮帮我。

最佳答案

试试这个:

SET @n := 0;
SELECT * FROM
(SELECT salary, @n := @n + 1 AS t1 FROM Employee ORDER BY salary DESC)
  AS t
WHERE t1 <= 5

Working DEMO

关于mysql - 如何在不使用限制的情况下在MySql中找到前5名薪水,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252604/

相关文章:

java - 使用java创建mysql表

mysql - 虽然我使用索引 Mysql 查询仍然运行缓慢

php - GROUP BY 不适用于许多 MySQL 5.7,因为 5.7 使用 SQL_MODE 的 "ONLY_FULL_GROUP_BY"选项。

mysql - 自动更新和缓存 View

mysql 外键错误 #1452

c# - 使用 MYSQL INBUILT 函数通过选择查询过滤数据表记录

php - php/mysql如何添加单列

php - 投影mySQL数据库,如何处理多类别

php - 根据mysql字段和php变量状态选择字段下拉选择状态

Mysql每小时平均值,间隔从半小时开始