回答思路
参考答案: ##All_String表示完整字符串,Target_String表示待统计的目标字段 select ( length('All_String')- length(replace('All_String', 'Target_String','')) )/length('Target_String') as cnt from table 答案解析: 此处我们用All_String表示完整字符串,用Target_String表示待统计的目标字段。 解题的基本思想是:字符串的总长度减去去掉目标字段的字符串长度,就得到了目标字段出现的总长度,除以目标字段长度就得到目标字段出现次数。SQL中提供了获取字符串长度的函数length( )以及从字符串里删除字符的函数replace( )。 ● length('All_String') 用来计算字符串的总长度; ● length(replace('All_String','Target_String','')) 首先将字符串中目标字段替换为空然后再计算替换后的字符串长度; ● (length('All_String')-length(replace('All_String','Target_String',''))) 两个长度相减则得到重复字段在字符串中出现的总长度; ●(length('All_String')length(replace('All_String','Target_String','')))/length('Target_String') 在重复字段总长度的基础上除以单个重复字段长度则得到重复字段的出现次数。