需求是这样的,原始数据第一列是用户的id,第二列是用户的行为,想按用户有过的行为点,对用户做聚合,并且统计各种行为组合的用户数量
比如下表
x1 y1
x1 y2
x2 y1
x2 y2
x3 y1
通过sql合并成
x1 y1,y2
x2 y1,y2
x3 y1
然后再按新的列group by,结果是
y1,y2 2个
比如下表
x1 y1
x1 y2
x2 y1
x2 y2
x3 y1
通过sql合并成
x1 y1,y2
x2 y1,y2
x3 y1
然后再按新的列group by,结果是
y1,y2 2个
y1 1个
代码这样写:
--假设表名为tb
select
ys,
count
(*)
from
(
select
x, to_char(wm_concat(y)) ys
from
tb
group
by
x
) w
group
by
ys
;
|