如何从表格中找到所有其他列的列的最小值和最大值
如何获得最小(薪水)和最高(薪水)以及所有其他列,例如oracle SQL查询中的名称,DOB,电话号码...等。
我已经尝试了以下操作及其正常工作,但是是否有其他方法使用分析功能或类似功能。
SELECT
a.*
FROM
employees a
JOIN (
SELECT
MIN(salary) min_sal,
department_id
FROM
employees
GROUP BY
department_id
) b ON a.salary = min_sal
AND a.department_id = b.department_id
UNION
SELECT
a.*
FROM
employees a
JOIN (
SELECT
MAX(salary) max_sal,
department_id
FROM
employees
GROUP BY
department_id
) b ON a.salary = max_sal
AND a.department_id = b.department_id;
How to get MIN(salary) and MAX(salary) and all other columns such as name, DOB, phone number ...etc in oracle SQL query.
I have tried the following and its working fine but is there any other way using analytical functions or something like that .
SELECT
a.*
FROM
employees a
JOIN (
SELECT
MIN(salary) min_sal,
department_id
FROM
employees
GROUP BY
department_id
) b ON a.salary = min_sal
AND a.department_id = b.department_id
UNION
SELECT
a.*
FROM
employees a
JOIN (
SELECT
MAX(salary) max_sal,
department_id
FROM
employees
GROUP BY
department_id
) b ON a.salary = max_sal
AND a.department_id = b.department_id;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我假设这样的东西(基于Scott的样本
EMP
表);查询每个部门的最低薪水和最高工资(这就是条款说的分区):
Something like this, I presume (based on Scott's sample
emp
table); query returns min and max salary per each department (that's whatpartition by
clause says):