簡體   English   中英

甲骨文總計行和列明智嗎?

[英]oracle grand total row and column wise?

我想要一個將按行和按列總計的查詢,我已經找到了計算按列計數但不獲取按行計數的方法。

select nvl(to_char(R.LTHT_FLAG), 'total') as a,
SUM(CASE WHEN p.STATUS_CODE='0' OR p.STATUS_CODE='1' THEN 1 ELSE 0 END) K,
SUM(CASE WHEN p.STATUS_CODE='2' THEN 1 ELSE 0 END) W, 
SUM(CASE WHEN p.STATUS_CODE='4' THEN 1 ELSE 0 END) C,
SUM(CASE WHEN p.STATUS_CODE='6' THEN 1 ELSE 0 END) R
from WORKASSIGNMENT P,RESOURCES R WHERE P.EMP_CODE=R.EMP_CODE
group by rollup (R.LTHT_FLAG);

以下查詢的輸出為按列計數,類似於。

A           K    W   C       R   Total
DEVELOPMENT 1   18  397      0     ?
HT         43   21  673      0     ?
LT        83    14  7955    60     ?
SLD      306    9   4621    24     ?
----------------------------------------
total    433    62  13646   84     ?

但現在我想按行計算此輸出

請幫助我逐行求和

只需添加所有列即可獲得每一行的總數。

例如,

SQL> WITH sample_data AS(
  2  SELECT 'DEVELOPMENT' A, 1 k, 18 w, 397 c, 0 r FROM dual UNION ALL
  3  SELECT 'HT' A, 43 k, 21 w, 673 c, 0 r FROM dual UNION ALL
  4  SELECT 'LT' A, 83 k, 14 w, 7955 c, 60 r FROM dual UNION ALL
  5  SELECT 'SLD' A, 306 k, 9 w, 4621 c, 24 r FROM dual
  6  )
  7  -- end of sample_data mimicking real table
  8  SELECT t.*, k+w+c+r total FROM sample_data t;

A                    K          W          C          R      TOTAL
----------- ---------- ---------- ---------- ---------- ----------
DEVELOPMENT          1         18        397          0        416
HT                  43         21        673          0        737
LT                  83         14       7955         60       8112
SLD                306          9       4621         24       4960

SQL>

上面,而不是sample_data ,將您當前的SQL作為子查詢放在FROM子句中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM