繁体   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