[英]sql oracle query - order by computed SUM column
友
在Oracle中,有没有一种方法可以按desc求和?
所以基本上在下面的输出中,我想要一个拥有最高薪水计数的页面...即第一个结果应该显示58000、27500、13000中的所有详细信息
BREAK on DEPARTMENT_ID page nodup
on JOB_ID skip 1 nodup
COMPUTE SUM OF SALARY ON DEPARTMENT_ID
/
DEPARTMENT_ID JOB_ID LAST_NAME SALARY
------------- ---------- ------------------------- ----------
20 MK_MAN Hartstein 13000
************* ********** ----------
sum 13000
DEPARTMENT_ID JOB_ID LAST_NAME SALARY
------------- ---------- ------------------------- ----------
80 SA_MAN Russell 14000
Partners 13500
************* ********** ----------
sum 27500
DEPARTMENT_ID JOB_ID LAST_NAME SALARY
------------- ---------- ------------------------- ----------
90 AD_PRES King 24000
AD_VP Kochhar 17000
De Haan 17000
************* ********** ----------
sum 58000
希望我解释得很好..谢谢..
让我们通过预先查找部门的工资SUM()
并将其附加到常规列中来进行分析。以降序对其进行排序,就可以完成了。
您将仍然可以使用sql*plus
报告。
SELECT DEPARTMENT_ID,
JOB_ID,
LAST_NAME,
SALARY,
SUM(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY NULL) as CUMULATIVE_SUM
FROM EMPLOYEE
ORDER BY CUMULATIVE_SUM DESC,DEPARTMENT_ID;
要从SELECT中删除,
ORDER BY SUM(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY NULL) DESC,DEPARTMENT_ID
比代码更符合您的散文,但是,如果为聚合提供别名,则可以按别名排序。
select somefield, sum(something) total
from whereever
where whatever
group by somefield
order by total desc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.