我的表格具有以下结构:
Col2
A
A
B
B
E
E
我希望 SQL 查询输出以下内容:
Internal 4
External 2
Total 6
逻辑:如果Col2中的值为A、B则应汇总为内部,如果为E则应汇总为外部。
最佳答案
要映射列值,请使用 DECODE ,简单地提供列的原始值和新值的列表。
select decode(col2,'A','Internal','B','Internal','E','External') col from tab
要计算总数,您不需要重新扫描整个表(性能下降一半),而是使用 group by rollup计算总计
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
关于sql - oracle SQL中,如何根据条件统计记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59961702/