Hive仅获取最大值

时间:2018-05-11 19:57:38

标签: hadoop hive

我有一个有两个cloumns的hive表,我想得到最多次出现的值

例如在我的下表中,一个值出现两次,c只出现一次,这里的值是dominat所以我只想要一个值,如输出

col1 col2
a a_value1
a a_value2
a c_value3
b b_value1

输出:

col1 col2
a   a_value1
b   b_value1

1 个答案:

答案 0 :(得分:1)

您正在寻找统计人员称之为模式的内容。一个非常简单的方法是使用带窗函数的聚合:

select col1, col2
from (select col1, col2, count(*) as cnt,
             row_number() over (partition by col1 order by count(*) desc) as seqnum
      from t
     ) t
where seqnum = 1;

上述查询将为每个col1返回一个值,即使存在关联。如果您想要关系中的所有值,请使用rank()dense_rank()