Redshift SQL - Получить самый правильный раздел веб-URL - PullRequest
0 голосов
/ 27 апреля 2018

Я использую базу данных postgres в Amazon Redshift, и мне нужно получить только последний раздел веб-URL, и следующий код работает, но если я пытаюсь запустить его на большом количестве записей, это приводит к зависанию запроса и не закончит:

reverse(left(reverse(post_pg_url_txt),position('/' in reverse(post_pg_url_txt))-1))

Кто-нибудь знает более эффективный способ получить весь текст справа от конечного "/" в веб-URL, чем код, который я вставил выше?

Спасибо заранее, Steven

1 Ответ

0 голосов
/ 27 апреля 2018

вариант 1:

Используйте функцию split_part вместе с реверсом для лучшего решения slghtly

reverse(split_part(reverse(post_pg_url_txt), '/', 1))

вариант 2:

Используйте функцию regexp_count с split_part

split_part(post_pg_url_txt, '/', regexp_count(post_pg_url_txt, '/')+1)

Как видите, вариант 1 короче две записи.

...