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等的技术来转换名称,并在分组之前减少名称的种类