甲骨文总计行和列明智?

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 子句中。