【发布时间】:2021-08-10 14:21:25
【问题描述】:
我有两个表的问题。一个表包含 url 及其信息,另一组 url 应按模式分组。
Urls table:
------------------------------------------------
| url | files |
| https://myurl1/test/one/es/main.html | 530 |
| https://myurl1/test/one/en/main.html | 530 |
| https://myurl1/test/one/ar/main.html | 530 |
------------------------------------------------
Urls patterns table:
---------------------------------------------
| group | url_pattern |
| group1 | https://myurl1/test/one/(es|en)/%|
| group2 | https://myurl1/test/one/(ar)/% |
---------------------------------------------
考虑到 url_patterns 每组只有一行,我已经尝试过类似的操作。
SELECT * FROM urls_table
WHERE url SIMILAR TO (SELECT MAX (url_pattern) FROM url_patterns WHERE group='group1')
LIMIT 10
这里的主要问题是,使用列参数应用 SIMILAR TO 似乎不起作用。
谁能给我一些建议? 提前致谢。
【问题讨论】:
-
您的解决方案从这里看起来很不错,您有问题吗?您的 Select MAX(...) 表示同一组可能有多个模式。要选择 URL 匹配任何模式的位置,请尝试
Select Distinct URL,files from urls_table, url_pattern where url Similar To url_pattern -
你想要什么结果?
-
您好,第一个问题是似乎无法将类似于应用于子查询。这就是为什么我应用 MAX 来尝试只获取和字符串。
标签: sql regex amazon-redshift