mysql - 在 SQL 中不使用聚合函数的最高/最低值

标签 mysql sql database postgresql

<分区>

我有一个名为department 的表,其中包含以下数据

DNO DNAME   SALARY
20  EE  30000
10  DoC 50000
30  ITS 20000

我想在不使用GROUP 函数或top-n 分析或NOT EXISTS 命令的情况下选择具有最高和最低工资的员工。任何帮助将不胜感激。谢谢

最佳答案

对于最大。工资:

SELECT *
FROM department d1
WHERE salary > ALL (SELECT d2.salary
                    FROM department d2
                    WHERE d2.dno <> d1.dno)

对于最低工资:

SELECT *
FROM department d1
WHERE salary < ALL (SELECT d2.salary
                    FROM department d2
                    WHERE d2.dno <> d1.dno)

两种解决方案都假设工资不能为空

关于mysql - 在 SQL 中不使用聚合函数的最高/最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554347/

相关文章:

mysql - SQL/Hive 表别名

php - 两张MySQL表的相关信息

mysql - 在mysql中创建日期为dd/mm/yyyy格式

python - pymssql:在数据库连接中设置字符集选项导致连接失败

sql - Sequelize 包含来自不同数据库模式的模型

javascript - 在数据库中存储格式化内容的标准方法是什么?

mysql - vb net 将多个数据读取器结果存储到一个字符串变量中

mysql - 开源应用服务器解决方案

mysql - 使用 sum 和 group 连接三个 sql 表

database - 微服务:如何处理外键关系