AWS Афина: получить часть строки после последнего разделителя - PullRequest
0 голосов
/ 26 мая 2020

У меня есть эта таблица в AWS Athena

+----------------------------------------------------------------------------+
|     URL                                                                    |
+----------------------------------------------------------------------------+
| stag.v1.abc.in/beauty/hair/go-abc-girl-a57-20200001?ref=home_feed_1        |
| stag.v1.abc.in/                                                            |
| stag.v1.abc.ph/eatdrink/cheap/76027/dairy-free-upsize-a1046-20190515?ref=ar|              
| stag.v1.abc.in/beauty/hair/go-abc-girl-a57-20200003?ref=home_feed_1        |        
+-----------------------------------------------------------------------------+

Мне нужно извлечь часть (id) строки из столбцов между двумя разделителями (после последнего '-' и перед '?' ) Я должен получить

+------------------------+
|     ID                 |
+------------------------+
| 20200001               |
| -                      |
| 20190515               |              
| 20200003               |        
+------------------------+

Я пробовал SUBSTRING_INDEX (), но Афина его не поддерживает. Может ли кто-нибудь мне в этом помочь. Заранее спасибо

1 Ответ

1 голос
/ 27 мая 2020

url_extract_path + regexp_extract

select regexp_extract(url_extract_path(url),'([^-]*)$') from "tableabc" 
limit 5;
...