我有下面的结构表:
Col2
A
A
B
B
E
E
我想要SQL查询向我输出以下内容:
Internal 4
External 2
Total 6
逻辑:如果Col2中的值为A,B,则应将其汇总为Internal,如果为E,则应将其汇总为External。
要使用DECODE映射列值,只需提供列的原始值和新值的列表即可。
select decode(col2,'A','Internal','B','Internal','E','External') col from tab
要计算总数,您不需要重新扫描整个表(性能下降到一半),而是使用逐个汇总来计算总数
with t as (
select decode(col2,'A','Internal','B','Internal','E','External') col from tab)
select nvl(col,'Total') col, count(*) cnt
from t
group by rollup (col)
结果
COL CNT
-------- ----------
External 2
Internal 4
Total 6
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句