mysql - 关于写SQL查询的问题

标签 mysql sql

假设我有两个表/列:

Employee - > EmpId, DeptNo, EmpName, Salary
Department -> DeptNo, DeptName

编写查询以获取所有部门中薪水最高的员工姓名。 我试过这个:

Select max(salary),empname 
from Employee 
where deptno = (select deptno 
                from department
                where deptname in('isd','it','sales')

是否正确?其实是一道面试题。

最佳答案

这是 groupwise max 的示例MySQL模式。一种方法是:

    SELECT e.salary, e.name, d.deptname
    FROM Employee AS e 
     JOIN (
       SELECT max(salary) AS max_sal, deptno
       FROM Employee
       GROUP BY deptno
     ) AS d_max ON (e.salary=d_max.max_sal AND e.deptno=d_max.deptno)
     JOIN Department AS d ON (e.deptno = d_max.deptno)

如果一个部门有多个员工拥有最高薪水,它会为一个部门返回不止一行

关于mysql - 关于写SQL查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13955723/

相关文章:

mysql - 安排导出到文本文件

php - 用php加入postgres上的表

php - 从 sql 数据库中获取后缺少第一个结果

mysql - 如果在第二个表中找不到匹配项,则选择数据

java - SQL 替换与执行插入或更新语句

mysql - 如何将 ' 作为值添加到 SQL 中

mysql - SELECT 语句中的 SELECT 返回 0 计数

MySQL 结合两个查询

mysql - 为什么总是针对两种性别进行更新?

php - 如何使用 array_merge 在 php 中合并两个不同的 mysql 选择结果?