甲骨文总计行和列明智吗?

苏哈斯

我想要一个将按行和按列总计的查询,我找到了一种计算按列计数但不按行计数的方法。

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     ?

但现在我想按行计算此输出

请帮助我逐行获取总和

拉利特·库马尔(Lalit Kumar B)

只需添加所有列即可获得每一行的总数。

例如,

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章