首页 > 解决方案 > Oracle - 如何从输出中替换和求和?

问题描述

我有 group by 的输出,如下所示。

SELECT param2,count(*) FROM table WHERE CALLED='1234' GROUP BY PARAM2 

Param2                      count(*)  
135;                          616  
135;135;                       18  
135;135;135;                    4  
135;135;135;135;                2  
135;135;135;135;135;135;27;    15      
135;135;135;27;                 5  
136;                           43  
136;136;                      383  
136;136;136;                   47    
136;136;136;27;                32  

预期:对于所有包含 135 或 136 的输出 param2 应再次分组,结果应如下所示:

Param2     count(*)  
135        660    
136        505  

标签: sqloracleoracle11goutput

解决方案


对于给定的示例,一个简单直接的解决方案就可以完成这项工作。不确定这是否是必要的一般性:

select '135' as "Param2", count(*) from table
  where called = '1234' and ';'||param2 like '%;135;%'
union all
select '136' as "Param2", count(*) from table
  where called = '1234' and ';'||param2 like '%;136;%'

推荐阅读