繁体   English   中英

如何获取两列及其关联列的总和的最大值-SQL Live

[英]How to get Max of sum of two columns, with associated column - SQL Live

CREATE TABLE emp
(
   empno      NUMBER (4, 0),
   ename      VARCHAR2 (10),
   job        VARCHAR2 (9),
   mgr        NUMBER (4, 0),
   hiredate   DATE,
   sal        NUMBER (7, 2),
   comm       NUMBER (7, 2),
   deptno     NUMBER (2, 0),
   CONSTRAINT pk_emp PRIMARY KEY (empno)
);

这显然是表的创建

输入图像描述这是表的输出

现在,我需要做的是找到Salesman行的Sal + Comm的总和,然后找到这些总和的最大值,然后显示该最大值和相应的ename

这是我的代码

     SELECT ename, MAX (SUM (sal + comm)) max_sal
    FROM emp
   WHERE job = 'SALESMAN'
GROUP BY ename

我知道这几乎是正确的,但是我是SQL的新手,所以我非常卡住(使用SQL live btw)

首先,您必须生成两个字段的和作为子查询,然后才能从子查询中获取MAX。 请给我们下面的查询:

select oldQuery.ename,MAX(oldQuery.Max_Sal)

from (select ename, sum(sal+comm) Max_Sal

from emp

where job='SALESMAN'

group by ename) as oldQuery

group by oldQuery.ename

尝试为

 SELECT deptno,
         MAX (ename) KEEP (DENSE_RANK LAST ORDER BY sal) ename,
         MAX (sal + comm)
    FROM emp
   WHERE job = 'SALESMAN'
GROUP BY deptno

DENSE_RANK-将只汇总那些行,其中MAXIMUM在前

KEEP将仅对这些结果而不是查询的完整结果使用MAX函数

编辑

没有dept_no

SELECT MAX (ename) KEEP (DENSE_RANK LAST ORDER BY sal) ename,
       MAX (sal + comm)
  FROM scott.emp
 WHERE job = 'SALESMAN'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM