presto - AWS Athena:在最后一个分隔符之后获取部分字符串
问题描述
我在 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() 但雅典娜不支持它。有人能帮我解决这个问题吗?提前致谢
解决方案
url_extract_path
+regexp_extract
select regexp_extract(url_extract_path(url),'([^-]*)$') from "tableabc"
limit 5;
推荐阅读
- visual-studio-code - Twig 变量中的 Tailwind CSS 自动完成功能
- swift - 如何在 SwiftUI 中的任何视图中显示弹出窗口
- python - PyGame 窗口未打开;没有错误
- android - 在约束布局中隐藏 Fab
- javascript - AJAX 从电子邮件地址字符串中丢失“+”
- laravel - 使用 Dusk、Docker 和 Laravel 时如何运行数据库迁移?
- reactjs - 玩笑失败,插件/预设文件不允许导出对象,只有功能
- java - Spring JPA ManyToOne findByJoinColumn / findByForegignKey
- swift - 为什么我可以用 List 列出一个数组,但不能用 For 循环和 Text 列出?
- python - 如何将我的 main() 函数输出为 CSV 文件