SQL中的聚合条件组(Hive)

时间:2016-03-08 02:58:14

标签: mysql sql hive

考虑一个包含以下列的表USER_SITE

user, site, n_visits, n_purchases

其中上表为每个用户站点组合记录一行。

我想计算以下信息:

site, n_users_who_visited_the_site, n_users_who_made_purchases_on_the_site

有没有办法在SQL中执行此操作?我尝试通过操作起草一些小组而没有运气,但也许我错过了一些东西。

给定USER_SITE的示例:

user       site   n_visits  n_purchases
Julie   foo.com         3             0
Carry   bar.com         1             0
Emily   foo.com        10             1
Chris   zoo.com         5             3

我们得到:

site      n_users_who_visited_the_site  n_users_who_made_purchases_on_the_site
foo.com                              2                                       1
bar.com                              1                                       0
zoo.com                              1                                       1

1 个答案:

答案 0 :(得分:2)

以下是使用sumcase

的一个示例
select site, 
     sum(case when n_visits > 0 then 1 else 0 end) n_users_who_visited,
     sum(case when n_purchases > 0 then 1 else 0 end) n_users_who_made_purchases
from user_site
group by site