我的蜂巢中有一个Twitter对象表(json格式),n行和1列。任务是计算在不同对象中某些单词(例如“ hon”,“ han”)的出现频率(每个对象都有一个名为“ text”的属性,其中包括一些文本(字符串类型)),这意味着即使一个单词在一个对象中出现多次,但仅计数一次。 我写一个如下查询。
select count(*) from table_name
where regexp(get_json_object(col_name, '$.text'), 'han')
limit 10
并收到类似这样的错误消息
失败:ParseException第2行:6无法识别表达式规范中'regexp''('''get_json_object'附近的输入。
如何执行此查询任务?而且我不知道如何在正则表达式中忽略大小写。
答案 0 :(得分:0)
使用(?i)
修饰符进行不区分大小写的比较:
select
sum(case when text rlike '(?i)han' then 1 else 0 end) cnt_han,
sum(case when text rlike '(?i)hon' then 1 else 0 end) cnt_hon
from
(
select get_json_object(col_name, '$.text') as text
from table_name
)s;