2013-12-13 120 views
1

我想計算一個列的計數另一個數字列的值的總和。我想要計算總和的特定列是'COUNT(d.totalcostofrent)。如何計算Oracle SQL中的計數列的總和?

我只是無法得到總共出現在桌子底下!

這裏是我的代碼:

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 

任何建議,將不勝感激!

+0

不要UND erstand問題..你能舉一個你現在得到的結果的例子,以及你在找什麼? – Craig

+0

我剛更新了帖子。 – Dan

回答

2

看起來你正試圖用SQL * Plus命令格式化報表。你非常接近,只有你有一個列的別名:SUM(d.totalcostofrent)「收入」。所以,你需要使用別名在計算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 
+0

非常感謝!完美的作品。而且我非常親密:) – Dan

0

使用ROLLUP擴展到聚合功能(例如count)延伸到更高水平的基團:

group by rollup(a.branchname) 

參見this reference

+1

這應該只是:「按彙總(a.branchname)分組」。你如何寫出一個錯誤。儘管從SQL本身返回TOTAL行是一個很好的選擇。 – Craig

+0

是的,我試過這個工作,但不幸的是沒有從最後一行中分離出來,但沒有清楚表明它是一個總數。不過謝謝,我可以在別的地方使用它。 – Dan