我有一列有几个项目,在其中我需要计算被调用的时间,我的列表如下所示:
Table Example
Id_TR Triggered
-------------- ------------------
A1_6547 R1:23;R2:0;R4:9000
A2_1235 R2:0;R2:100;R3:-100
A3_5436 R1:23;R2:100;R4:9000
A4_1245 R2:0;R5:150
我希望结果是这样的:
Expected Results
Triggered Count(1)
--------------- --------
R1:23 2
R2:0 3
R2:100 2
R3:-100 1
R4:9000 2
R5:150 1
我试图做一些子字符串,但似乎找不到解决该问题的方法。有人可以帮忙吗?
最佳答案
该解决方案比CONNECT BY解决方案快X3倍
性能:每秒15K记录
with cte (token,suffix)
as
(
select substr(triggered||';',1,instr(triggered,';')-1) as token
,substr(triggered||';',instr(triggered,';')+1) as suffix
from t
union all
select substr(suffix,1,instr(suffix,';')-1) as token
,substr(suffix,instr(suffix,';')+1) as suffix
from cte
where suffix is not null
)
select token,count(*)
from cte
group by token
;
关于sql - 列中的子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41068400/