【问题标题】:AWS Athena: Get part of the String after last delimiterAWS Athena:在最后一个分隔符之后获取部分字符串
【发布时间】:2020-09-13 10:02:37
【问题描述】:

我在 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() 但雅典娜不支持它。有人可以帮我解决这个问题吗?在此先感谢

【问题讨论】:

标签: presto amazon-athena


【解决方案1】:

url_extract_path + regexp_extract

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

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多