背景:
有些小游戏公司,对于新上线的关卡小游戏,会对每个关卡的用户,通关情况进行统计分布,调整关卡的难易程度、任务奖励等
一次赢: 经过本关没有输的记录,只有赢的记录,如果赢了一次,这一关是无法再重新玩的
先输后赢: 经过本关,输的记录在赢的记录前面,最终是赢的
一直输: 经过本关没有赢的记录,只有输的记录
对于这种一次赢、先输后赢、一直输,在数仓里面只是一个标签。
怎么打这种标签:
注:gamestatus='7’为赢的状态,gamestatus='8’为输的状态,
一次赢:
拿每个用户每个关卡赢的记录去关联输的记录,关联不上的代表这个用户在这个关卡一次赢
select
dateline,
apptypeid,
accid,
gameround,
fail_and_win_tag,
dt
from
(select
t1.dateline,
t1.apptypeid,
t1.accid,
t1.gameround,
case when (t2.accid is not null and t1.dateline<t2.dateline) or t2.accid is null then 1 end as fail_and_win_tag,
t1.dt
from
(select
dateline,
apptypeid,
accid,
gameround,
dt