我正在尝试计算一列的总和,该列对另一个数字列的值进行计数。我想要计算总和的特定列是“COUNT(d.totalcostofrent)”。
我根本无法让总数显示在 table 下面!
这是我的代码:
COLUMN dummy NOPRINT
COMPUTE SUM OF totalcostofrent ON DUMMY
BREAK ON dummy
COLUMN branchname HEADING 'Branch Name'
COLUMN "Revenue" HEADING 'Rental Revenue' FORMAT $99,999
select null dummy,
a.branchname,
count(c.rentalid) "Number of Rentals",
SUM(d.totalcostofrent) "Revenue"
from branch a
inner join branchstaffrole b on a.branchid = b.branchid
inner join rental c on b.staffid = c.branchstaffid
inner join rentaltool d on c.rentalid = d.rentalid
where to_char(d.DATEOUT, 'YYYY') = '&Year'
group by a.branchname
order by 4 DESC;
Branch Name Number of Rentals Rental Revenue
-------------------- ----------------- --------------
Lichfield 2 $120
Stoke-on-Trent 3 $140
Birmingham 3 $155
Stafford 3 $225
我希望它看起来像这样:
Branch Name Number of Rentals Rental Revenue
-------------------- ----------------- --------------
Lichfield 2 $120
Stoke-on-Trent 3 $140
Birmingham 3 $155
Stafford 3 $225
____
Sum $640
如有任何建议,我们将不胜感激!
最佳答案
您似乎正在尝试使用 SQL*Plus 命令格式化报告。你真的很接近,只是你有一个列的别名:SUM(d.totalcostofrent)“Revenue”。因此,您还需要在 Compute SQL*Plus 命令中使用该别名:
COMPUTE SUM OF "Revenue" ON DUMMY
这将返回:
Branch Name Number of Rentals Rental Revenue
-------------- ----------------- --------------
Lichfield 2 $120
Birmingham 3 $155
Stoke-on-Trent 3 $140
Stafford 3 $225
--------------
$640
您也可以执行相同的操作,排除虚拟列:
COMPUTE SUM OF "Revenue" ON REPORT
BREAK ON REPORT
COLUMN branchname HEADING 'Branch Name'
COLUMN "Revenue" HEADING 'Rental Revenue' FORMAT $99,999
返回结果:
Branch Name Number of Rentals Rental Revenue
-------------- ----------------- --------------
Lichfield 2 $120
Birmingham 3 $155
Stoke-on-Trent 3 $140
Stafford 3 $225
--------------
sum $640
关于sql - 如何计算 Oracle SQL 中计数列的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20572082/