首页 > 解决方案 > 使用 Postgresql,计算长度大于 5 的表中的连续数字

问题描述

Telephone_number
111111111
1111143452
000000000
888888888
5554038291
1111392012
9999999999
2324666666

所以从上面看,我只想让那些相同数字重复超过 5 次的记录。

输出计数应为 5。

标签: postgresql

解决方案


您可以使用带有重复反向引用的正则表达式。

with test (telephone_number) as
     ( values ('111111111')
            , ('1111143452')
            , ('000000000')
            , ('888888888')
            , ('5554038291')
            , ('1111392012')
            , ('9999999999')
            , ('2324666666')
     )                                     
select telephone_number                                  
  from test                                   
 where telephone_number ~ '(\d)\1{5,}';

这确实取决于如何将列定义为数字或文本。如果是数字定义,那么您需要尝试转换为文本以使用正则表达式。见小提琴


推荐阅读