regex - 在 Hive 中使用正则表达式获取匹配数?
问题描述
我想从基于正则表达式匹配的表中获取计数值。例如,假设我想查找表中所有以“/top”结尾的字符串,并且该表包含以下数据:
id url
1 example.com/top
2 example.com/index.html
3 example2.com/top
以下查询似乎命中每一行,而不仅仅是两行:
select
sum(CASE WHEN url REGEXP '.*/top' THEN 1 ELSE 0 END) as topCount,
sum(CASE WHEN url REGEXP '.*/index.html' THEN 1 ELSE 0 END) as defaultCount
from myTable
有什么建议么?
解决方案
您可以使用 中的条件where
。
select count(*) from myTable where url REGEXP '.*/top$'
推荐阅读
- python - Tkinter 画布多次创建图像
- scala - Scala HashSet java.lang.NegativeArraySizeException
- html - 使用css在按钮中居中图像
- javascript - 如何使用 for 循环和拼接来删除一个单词,然后检查一个特定单词的数组
- java - How can I put two or more arrays into a single array?
- node.js - 如何使用无服务器框架通过 AWS API Gateway 返回以 Node.js 编写的 AWS Lambda 函数的错误?
- php - PHP:嘲弄 模拟变量 $user = Auth::user()
- java - 编译多个类并传递命令行参数
- python - 如何在散景中附加图?
- c# - 如何从非 Activity 类启动 Activity?