mysql - 明智地找到表部门中第二大的

标签 mysql

我有一个名为“emp”的表。列是: uid、emp_name、emp_dept、emp_sal。

现在我想找到每个部门员工第二高的工资。 请建议我查询。 我已经使用了这个查询,但它没有显示我想要的结果::

 select max(emp_sal) from emp where emp_sal<(select max(emp_sal) from emp)
 group by emp_dept

最佳答案

由于您使用的是 MySql,因此可以利用 limit 子句中的 offset 参数。

SELECT e.emp_dept, 
    ( SELECT p.emp_sal
      FROM emp p 
      WHERE p.emp_dept = e.emp_dept 
      ORDER BY p.emp_sal DESC 
      LIMIT 1,1) secondHighestSal
FROM emp e
GROUP BY e.emp_dept

关于mysql - 明智地找到表部门中第二大的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894632/

相关文章:

Mysql 连接与重复

java - java中的MySQL语法错误

mysql - Golang - 将数据插入 MySQL DB 时流意外结束

mysql - 用于测试的 JSF 托管

php - 使用 mysql 查询从关系表中搜索多个类别和行业

MySQL解释器将没有聚合函数的查询称为聚合查询

php - 它确实显示了一个用户,但它显示了我在 table 上的所有用户,我只是在寻找一个带有 $_session 的用户

mysql - 如何重新创建问题:Mysql2::Error:非法混合排序规则(latin1_swedish_ci,IMPLICIT)

mysql - 如何将Mamp的mysql数据文件夹同步到Dropbox

mysql - 无法从 phpMyAdmin 中删除数据?