hive经典面试题3--游戏业务中一次赢、先赢后输、一直输(有无下一关)如何统计

这篇博客探讨了小游戏公司在统计用户关卡通关情况时如何进行数据分析。通过使用SQL查询,分别定义了一次赢、先输后赢和一直输的用户标签。一次赢是指用户仅有一次赢的记录;先输后赢指用户先输后赢,赢的记录在输之后;一直输则是用户未有过赢的记录。此外,还讨论了如何判断用户是否有下一关的方法,即比较当前关卡与最大关卡的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:
有些小游戏公司,对于新上线的关卡小游戏,会对每个关卡的用户,通关情况进行统计分布,调整关卡的难易程度、任务奖励等
在这里插入图片描述
一次赢: 经过本关没有输的记录,只有赢的记录,如果赢了一次,这一关是无法再重新玩的
先输后赢: 经过本关,输的记录在赢的记录前面,最终是赢的
一直输: 经过本关没有赢的记录,只有输的记录

对于这种一次赢、先输后赢、一直输,在数仓里面只是一个标签。

怎么打这种标签:

注: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值