Используя Postgresql, посчитайте последовательные числа в таблице, длина которой превышает 5

#postgresql

#postgresql

Вопрос:

 Telephone_number
111111111
1111143452
000000000
888888888
5554038291
1111392012
9999999999
2324666666
 

Итак, исходя из вышесказанного, я хочу, чтобы только те записи, в которых одна и та же цифра повторялась более 5 раз.

Количество выходных данных должно быть 5.

Ответ №1:

Вы можете использовать регулярное выражение с повторяющейся обратной ссылкой.

 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,}';
 

Это зависит от того, как определены столбцы, как числовые или как текстовые. Если числовое определение, то вам нужно поиграть с преобразованием в текст для использования регулярного выражения. См. fiddle .