Как подсчитать количество точек, которые встречаются в строке (тип text) PostgreSQL?
Когда мы говорим о строках в любом из языков программирования, то для манипуляции с ними лучше всего использовать «регулярные выражения«.
В PostgreSQL есть специальная функция, которая умеет подсчитывать количество повторений символа или символов в строке по принципу регулярных выражений — regexp_count().
Функция regexp_count() может принимать 4 параметра:
- Сама строка, в которой нужно подсчитать искомый символ
- Шаблон регулярного выражения, по которому будет производиться сопоставление
- Начальная позиция в строке, с которой нужно начинать сопоставление. Минимально 1.
- Флаг регулярного выражения, кроме ‘g’.
Пример:
SELECT regexp_count('https://www.koenigsdorfer-alm.de', '\.', 1); или SELECT regexp_count('https://www.koenigsdorfer-alm.de', '\.');
Вызов данного SQL-выражения вернёт нам число 2 (тип integer).
Обратите внимание на шаблон регулярного выражения — ‘\.’
В синтаксисе шаблона есть управляющий символ ТОЧКА, который обозначает любой один символ сопоставления. Если мы хотим отловить обычный символ ТОЧКИ, когда нам нужно экранировать его обратным слешем.
Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org
Команды SQL — https://postgrespro.ru/docs/postgresql/15/sql-commands
Функции для работы со строками в PostgreSQL — https://postgrespro.ru/docs/postgresql/15/functions-string#FUNCTIONS-STRING-OTHER