结合常见游戏业务分析场景应用SQL实例(持续更新ing...)

前言:

  1. 本篇进阶练习题均来自真实的业务需求场景,SQL难度不高,但要求较为清晰的业务逻辑和对游戏项目的深入了解。
  2. 如果对于SQL不熟悉可以看我的这两篇文章:
  1. 数据本身已作脱敏处理,不可尽信。
例1:

数值策划想验证线上版本新玩家的升级和破产情况是否符合设计预期,故需查找2020.1.1-2020.2.5期间玩家首次破产时的等级的平均值,并区分应用版本$app_version、iOS和GooglePlay渠道channel。
由于存在一些小bug会导致部分玩家经验曲线有问题,所以只筛选首次破产在100级以下的玩家,以避免极端值影响平均值的计算。

数据表及字段如下:

	/*events表*/
	user_id		event		lv		date		channel				$app_version
	-----------------------------------------------------------------------------
	玩家id		事件名		等级	日期		iOS或GooglePlay		应用版本
	NUMBER		STRING		NUMBER	DATE		STRING				STRING
	-----------------------------------------------------------------------------
	111			Loading		1		2020-01-01	iOS					5.3.1
	222			EnterGame	2		2020-01-01	iOS					5.3.11
	333			Click_1		2		2020-01-01	GooglePlay			5.2.10
	333			Bankruptcy	28		2020-02-01	GooglePlay			5.3.1
	...			...			...		...			...					...
	
	/*users表*/
	id			channel				lv			user_group_3		user_group_10
	------------------------------------------------------------------------------
	玩家id		iOS或GooglePlay		等级		用户分群1			用户分群2
	NUMBER		STRING				NUMBER		BOOL				BOOL	
	------------------------------------------------------------------------------
	111			iOS					46			0					1
	222			iOS					149			0					1
	333			GooglePlay			87			1					1
	444			GooglePlay			34			0					0
	... 		   ...              ...        ...                 ...

注:

  • users表中的user_group_10是事先已定义好分群的研究对象,取值为真时生效。user_group_3是测试机分群,取值为假时生效。

参考语句:

	select channel,$app_version,avg(minlv) from 
		  (select user_id,min(events.lv) as minlv
		  	from users,events
			where events.user_id = users.id 
			and event = 'Bankruptcy' 
			and events.channel in ('iOS','GooglePlay')
			and date between '2020-01-01' and 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值