sql - 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
解决方案
对于给定的示例,一个简单直接的解决方案就可以完成这项工作。不确定这是否是必要的一般性:
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;%'
推荐阅读
- c# - 使用 Linq Select 时出现 ArgumentNullException
- c - 如何使用结构在 C 中使用函数指针?
- c# - 恢复数据库 PostgreSQL 重复行
- gmail-api - gmail过滤器中是否有选择转发和抄送地址的功能?
- java - 如何在 Spring Security 中启用基本授权?
- azure-devops - 如何从 Git Hub 持续更新 azure repo?
- excel - Excel - 如何在大量数值数据中找到匹配行的模式?
- ionic-framework - 键盘隐藏屏幕
- linux - 如何压缩环境变量中非常长的文件列表:***检测到缓冲区溢出***:zip终止
- php - Tooltipster 工具提示未在点击触发器上打开