在Hive中使用正则表达式获取匹配计数?

时间:2018-10-24 14:46:40

标签: 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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用where中的条件。

select count(*) from myTable where url REGEXP '.*/top$'