select c1,c2,c3,c4,c5,c6
   from table
   where c5 in ('a', 'b')

从这里开始,我想将列c5分为两列,然后根据它们对c6的值对其进行排名。一栏应由所有结果组成,另一栏应由所有b结果组成。我已经能够使用rank()对它们进行排名,但是无法将各列分开。我还没有别人使用过的技术为我工作。

最佳答案

select c1,c2,c3,c4,c5,c6, rank() over (partition by ... order by case when c5='a' then 1 case when c5='b' then 2 end) as rnk;

我不完全理解c5到底包含什么。替换when c5='a'之类的条件,以防万一。

关于hadoop - HIVE QL:将列分为2列,并对每列进行排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38509823/

10-11 06:22