PostgreSQL中统计指定字符或者单词或者字符串在一个长字符串中出现总次数,PostgreSQL统计字符串中某字符出现次数

PostgreSQL中统计指定字符或者单词或者字符串在一个长字符串中出现总次数,PostgreSQL统计字符串中某字符出现次数

pg自带函数的方式

使用字符串转数组(将需要计算出现次数的字符串作为SPLIT字符),再求数组个数减一,得到这个字符串或字符的出现次数

select array_length(regexp_split_to_array('
\u5206\u4EAB\u6570\u636E\u5E93\u524D\u6CBF\uFF0C\u89E3\u6784
\u5B9E\u6218\u5E72\u8D27\uFF0C\u63A8\u52A8\u6570\u636E\u5E93
\u6280\u672F\u53D8\u9769groupCodedatabasegroupDesc\u6211\u4EEC
\u627F\u8F7D\u4E86\u963F\u91CC\u4E91\u3001\u963F\u91CC\u5DF4
\u5DF4\u96C6\u56E2\u6240\u6709\u5728\u7EBF\u6570\u636E\u4EE5
\u53CA\u6570\u636E\u670D\u52A1\uFF0C\u63D0\u4F9B\u4ECE\u5728
\u7EBF\u4E8B\u7269\u5904\u7406\u5230\u5728\u7EBF\u5206\u6790
\u5904\u7406\u7684\u5168\u6808\u6570\u636E\u5E93\u4EA7\u54C1
\u548C\u670D\u52A1\uFF0C\u652F\u6301\u516C\u5171\u4E91\u3001
\u4E13\u6709\u4E91\u5404\u79CD\u73AF\u5883\u4E0B\u7684\u7075
\u6D3B\u90E8\u7F72\uFF0C\u6EE1\u8DB3\u4ECE\u4E2A\u4EBA\u5F00
\u53D1\u8005\u3001\u4E2D\u5C0F\u4F01\u4E1A\u5230\u5168\u7403
\u5927\u89C4\u6A21\u4F01\u4E1A\u4E1A\u52A1\u3002\n\n\u5728\u6570
\u636E\u5E93\u5B58\u50A8\u5F15\u64CE\u3001\u4E91\u539F\u751F
\u6280\u672F\u3001\u5206\u6790\u5F15\u64CE\u3001\u5206\u5E03
\u5F0F\u5904\u7406\u3001FPGA/GPU\u786C\u4EF6\u52A0\u901F\u3001
\u667A\u80FD\u6570\u636E\u5E93\u3001\u667A\u80FD\u5316\u7BA1
\u63A7\u5E73\u53F0\u3001\u5B89\u5168\u6570\u636E\u5E93\u7B49
\u65B9\u9762\uFF0C\u963F\u91CC\u4E91\u6570\u636E\u5E93\u90FD
\u5904\u4E8E\u5168\u7403\u9886\u5148\u4F4D\u7F6E\uFF0C\u5168
\u9762\u7684\u4E91\u4EA7\u54C1\u548C\u670D\u52A1\u7EC4\u5408
\uFF0C\u4E3A\u963F\u91CC\u4E91\u5BA2\u6237\u4EE5\u53CA\u963F
\u91CC\u5DF4\u5DF4\u96C6\u56E2\u7684\u591A\u5143\u5316\u4E1A
\u52A1\u63D0\u4F9B\u4E86\u4E30\u5BCC\u7684\u6570\u636E\u5E93
\u4EA7\u54C1\u89E3\u51B3\u65B9\u6848\u548C\u884C\u4E1A\u7ECF\u9A8C\u3002'
,'\\'),1)-1 ;

在这里插入图片描述

select
	array_length(regexp_split_to_array(' [{"detectResult":"","datetime":"1603174786605","watermark":"",
	"source":"d45c6059-f481-4a9e-a8c4-546b9ec1a3b2.jpg"},
	{"detectResult":"","datetime":"1603174792122","watermark":"",
	"source":"43ce4079-8975-4583-8be2-5c98601dfce9.jpg"}]', 'source'), 1)-1 
as count;

在这里插入图片描述

另外一种思路方式,字符替换,统计被替换的字符数

select length('ffffff') - length(replace('ffffff','f','')) as result

在这里插入图片描述

函数 translate(string text, from text, to text)

类型说明
函数translate(string text, from text, to text)
返回类型text
描述string中任何匹配from集合中一个字符的字符会被替换成to集合中的相应字符。如果from比to长,from中的额外字符会被删除。
例子translate(‘12345’, ‘143’, ‘ax’)
结果a2x5
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值