我的桌子结构如下:
Col2
A
A
B
B
E
E我希望SQL查询输出以下内容:
Internal 4
External 2
Total 6逻辑:如果Col2中的值是A,B,那么它应该被总结为内部,如果E,那么它应该被总结为外部。
发布于 2020-01-29 07:06:23
若要映射列值,请使用解码器,简单地提供列的原始值和新值的列表。
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发布于 2020-01-29 06:48:36
select sum(case when col2 in ('A', 'B') then 1 else 0 end) as internal,
sum(case when col2 = 'E' then 1 else 0 end) as external,
count(col2) as total
from your_table发布于 2020-01-29 06:51:00
select 'Internal' "summed up as"
,sum(case when Col2 in ('A', 'B') then 1
else 0
end) "sum"
from test
union
select 'External' "summed up as"
,sum(case when Col2 = 'E' then 1
else 0
end) "sum"
from test
union
select 'Total' "summed up as"
, count(Col2) "sum"
from test;https://stackoverflow.com/questions/59961702
复制相似问题