sql - 两个表和重复组的 SQL 最小值最大值
问题描述
我做了一些研究,但我真的找不到答案,我发现有一点效果很好,让我很惊讶,因为它很简单,但是仍然没有得到我必须的结果。所以,我有两张表,EMP 和 DEPT,我必须回答问题“显示部门名称以及每个部门的最低和最高工资”。
电磁脉冲
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7782 CLARK MANAGER 7839 09/JUN/1981 2450 - 10
7934 MILLER CLERK 7782 23/JAN/1982 1300 - 10
7788 SCOTT ANALYST 7566 09/DEC/1982 3000 - 20
7876 ADAMS CLERK 7788 12/JAN/1983 1100 - 20
7369 SMITH CLERK 7902 17/DEC/1980 800 - 20
7902 FORD ANALYST 7566 03/DEC/1981 3000 - 20
7566 JONES MANAGER 7839 02/APR/1981 2975 - 20
7900 JAMES CLERK 7698 03/DEC/1981 950 - 30
7499 ALLEN SALESMAN 7698 20/FEB/1981 1600 300 30
7698 BLAKE MANAGER 7839 01/MAY/1981 2850 - 30
7654 MARTIN SALESMAN 7698 28/SEP/1981 1200 1250 30
7844 TURNER SALESMAN 7698 08/SEP/1981 1500 0 30
7521 WARD SALESMAN 7698 22/FEB/1981 1250 500 30
7839 KING PRESIDENT - 17/NOV/1981 5000 - -
部门
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 PURCHASING MIAMI
任何想法如何使它工作?我用过:
SELECT DEPTNO,MIN(SAL) MINI,MAX(SAL) MAXI FROM EMP
WHERE DEPTNO IS NOT NULL GROUP BY DEPTNO ORDER BY DEPTNO,MINI,MAXI;
我确实有我想要的结果,但我确实有部门编号而不是部门名称。有小费吗?当我尝试时如何使用INNER JOIN
它说
ORA-00918: 列定义不明确
解决方案
首先,我在您的查询中没有找到任何类型的连接,因此您需要包含join
(即INNER JOIN
/ LEFT JOIN
)
select d.dname, min(e.sal) as MinSal, max(e.sal) as MaxSal
from emp e
inner join dept d on d.deptno = e.deptno
group by d.dname;
推荐阅读
- tidymodels - 整洁模型中 XGBoost 的 L2 正则化
- ios - 是否有可能摆脱IOS照片删除确认弹出或自定义消息
- hybris - Hybris 1905 无法访问 hac 或后台
- python - 如何在并行化时使用 zip 进行异步
- webhooks - 在 webhook 的应用程序洞察警报中包含查询结果
- kubernetes - 如何使用prometheus监控每个函数请求的执行时长?
- ionic5 - ionic 5背景图标显示“点击了解更多信息或停止应用”,无法通过点击打开应用
- javascript - 在循环的api请求之间等待,并合并所有响应
- python - 如何删除我的不和谐机器人发送的 dm 消息
- html - 在弹出模式中移动图像不起作用,但在主容器中