如何从Hive的同一列中选择多个计数

时间:2018-09-02 21:09:12

标签: hive

我在蜂巢中有下表:

用户ID产品ID操作

 1      101    Browse
 2      102   Clicked
 3      103 AddToCart
 4      104 Purchase
 5      105   LogOut
 6      106   Browse
 7      107   Browse
 8      108   Browse
 9      109  Clicked
10      110  Clicked
11      111  Clicked
12      112  Clicked
13      101   Browse
14      101   Browse
15      101   Browse
16      101   Browse
17      102  Clicked
18      103 AddToCart
19      102  Clicked
20      103 AddToCart

现在在我的输出中,我需要productid以及浏览或单击的那些动作的计数。

**

  • 输出:

**

productid browseCount clickCount

  101         5         1
  102      null         4
  106         1      null
  107         1      null
  108         1      null
  109      null         1
  110      null         1
  111      null         1
  112      null         1

1 个答案:

答案 0 :(得分:1)

您可以使用条件和来完成此操作,例如

select
productid,
  sum(if(action = 'Browse', 1, 0)) as BrowseCount,
  sum(if(action = 'Clicked', 1, 0)) as ClickedCount
from table
group by productid