Hive 多次计算同一区域的蜂巢数
我需要计算有多少学生来自哪个学院,但当我使用下面的查询时 选择学院,按学院从学生组中计算(*) 我得到了这个结果 结果显示相同学院的不同计数Hive 多次计算同一区域的蜂巢数,hive,hiveql,hadoop2,Hive,Hiveql,Hadoop2,我需要计算有多少学生来自哪个学院,但当我使用下面的查询时 选择学院,按学院从学生组中计算(*) 我得到了这个结果 结果显示相同学院的不同计数 我在这里应该怎么做才能得到正确的大学数量呢看起来同一所大学有很多不同的名字,像这样 JIIT "JIIT jiit 尝试将它们规范化(转换为大写并删除“”),这样在分组后,它将与JIIT相同: select case when college = 'BSA' then 'BSA College of Technology' --add
我在这里应该怎么做才能得到正确的大学数量呢看起来同一所大学有很多不同的名字,像这样
JIIT
"JIIT
jiit
尝试将它们规范化(转换为大写并删除“”),这样在分组后,它将与JIIT
相同:
select case when college = 'BSA' then 'BSA College of Technology'
--add other cases
else --rule for others
trim(upper(regexp_replace(college,'"','')))
end as college
,COUNT(*) as cnt
from students
group by
case when college = 'BSA' then 'BSA College of Technology'
--add other cases
else --rule for others
trim(upper(regexp_replace(college,'"','')))
end --the same sentence should be in group by, or use subquery instead
;
应用case
将更复杂的字符串,如MJP ROHILKHAND
和M J p ROHILKHAND
转换为相同的字符串
发生这种情况的原因是数据库没有规范化,并且没有按学院维度限制学院
列的输入。谢谢您的帮助,我可以对缩写形式的学院名称做些什么吗form@palashchoubey只有这样:<代码>案例学院当“一种形式”然后“另一种形式”当“这个”然后“那个”…否则学院以学院结束
,将两者结合起来solutions@palashchoubey请参阅更新的答案和更复杂的规则。您可以使用任何使用regex、case等的技术来转换名称,并在分组之前减少名称的种类