配置单元拆分和总计

时间:2019-03-19 17:13:38

标签: sql hive

所以,说我想计算两列中“ Class1”条目的数量...这些列中的每个输入都是一个字符串。

说我有输入数据:

column_1                    column_2
Class1;full;11;11           Class1;full;11;11
Class2;limited;11;11        Class1;full;11;11

所需的输出:

   Class        Total
    Class1      3
    Class2      1

实际输出:

   Class        Total
    Class1      2

但是,似乎split函数仅评估最后一列。

下面是我的查询...

SELECT  Class,COUNT(*) AS Total

FROM (SELECT ID 

        ,SPLIT(CLASS_LIST1,'\u0059')[0]
        ,SPLIT(CLASS_LIST2,'\u0059')[0]


            AS Class

FROM table

    )a

group by class

关于如何获取两列总计的任何想法?

1 个答案:

答案 0 :(得分:0)

使用UNION ALL

SELECT  Class,COUNT(*) AS Total
FROM (SELECT ID, SPLIT(CLASS_LIST1,'\073')[0] AS Class FROM table
      UNION ALL
      SELECT ID, SPLIT(CLASS_LIST2,'\073')[0] AS Class FROM table
    )a
group by class