SQL 按字符串的中间部分分组

帕维尔斯

我有通常看起来像这样的字符串列:

https://mapy.cz/zakladni?x=16.3360208&y=49.6718038&z=8&source=firm&id=13123554
https://mapy.cz/turisticka?x=15.9380354&y=50.1990211&z=11&source=base&id=2197
https://mapy.cz/turisticka?x=12.8611357&y=49.8051338&z=16&source=base&id=1703157

我想按作为字符串一部分的对数据进行分组- “source=”后面的四个字母(在上述情况下:)firm然后简单地计算它们。有没有办法直接在 SQL 代码中实现这一点?我正在使用hadoop。

数据是一组类似上面的字符串。我的预期结果是包含两列的汇总表:1)每种类型的源(大约有 20 种可能,它们的长度不同,所以我不能使用 sipmle 子字符串)。理想情况下,我正在寻找这样的解决方案:对于分组,使用“source=”之后的四个字母 2) 计数它们在所有字符串中的出现次数。

每个字符串中只有一种源类型。

戈登·利诺夫

您可以使用regexp_extract()

select substr(regexp_extract(url, 'source[^&]+'), 8)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章