某公司游戏数据分析笔试题
timey小先生 2021-10-17 06:31:15阅读 1062 游戏、数据分析、笔试、面试

1、设有两个关系模式:职工(职工号,姓名,性别,年龄,职务,工资,部门号), 部门(部门号,部门名称,经理名,地址,电话)

     依据上述关系回答下面题。

(1)试用SQL语句删除年龄大于70岁的职工信息。

(2)试用SQL语句统计每个部门的人数。

(3)试用SQL语句检索人事部所有姓刘的职工姓名和年龄。

(4)试用SQL语句定义一个包含姓名、性别、工资、职务和部门名称的视图

 

答案:

(1)	Delete from 职工表名 where 年龄 > 70;

(2)	
Select a.部门号, 
       count(a.职工号) as 部门人数
From
     (Select 部门号, 职工号 from 职工表名) as a
Left Join
     (select 部门号,部门名称 from 部门表名) as b
On a.部门号=b.部门号
Group by a.部门号;

(3)	Select a.职工号, 
           a.姓名, 
           a.性别,
           a.年龄 
From 
     (select 部门号,职工号,姓名,年龄 from 职工表) as a
Left join
     (select 部门号, 部门名称 from 部门表) as b
On a.部门号=b.部门号
Where a.部门号 = ‘人事部’
And a.姓名 like “刘%”   --(也可用切割符合) 

(4)	create view v_zbb_info
    (v_name, v_sex, v_wages, v_job,  v_department) 
    As  
       Select a.姓名, a.性别,a.工资,a.职务,b.部门名称
       From
           (Select部门号,职工号,姓名,性别,工资,职务 from 职工表) as a
       Left Join
           (select 部门号,部门名称 from 部门表名) as b
       On a.部门号=b.部门号

 

2、.根据以下提供的数据库表A与B进行统计出表R的结果,请写出获取结果的SQL查询语句。

答:

Select t.create_time,                        -- 创建日期
       t.c_count,                            -- 每日创建量
       t.login_time,                         -- 登陆日期
       count(distinct user_id),              -- 登陆人数
       Datediff(b.logint_time, a.create_time) +1 as days,
       count(distinct user_id) / t.a_count   -- 留存率
from
      (
       Select a.create_time, 
              a.c_count, 
              a.user_id,
              if(b.login_time is null,-1, b.login_time) as login_time
       from
            (-- 从A表中获取创建时间、并用开窗函数统计每天的创建量
             Select date(datetime) as create_time, 
                    user_id,
                    Count(user_id) over (partition by date(datetime)) as c_count
             from A )as a
       Left join
            (-- B表的登陆时间
             Select date(datetime) as login_time, 
                    user_id 
             from B 
            ) as b 
       On a.user_id=b.user_id    --left join之后形成注册用户的所有登陆时间
) as t
Group by t.create_time, t.a_count, t.login_time, 
         Datediff(date(b.logint_time), date(create_time)) +1

 

3、目前,某APP筹备建设付费留存报表,故需要采集和储存相关数据,请任意选择以下一个问题谈谈你的想法。

(1)建设付费留存报表前期需要设计采集哪些数据埋点、如何设计该埋点(埋点名称、埋点触发条件、埋点自定义参数等)

(2)从成功采集玩家真实数据到数据进入数据库的整个数据流程

答:   (1)游戏埋点设计:  登陆、登出、创建、创角之前【客户端】、成功付费、付费按钮点击、物品变动、元宝变动、其他货币变动、言论,FPS/延时网速(多人同屏大世界),等级提升,任务完成等 ,前期基本埋点需要.

不同游戏不同字段埋点设计,但前期P1(最高优先级)框架总体不变,当涉及到玩法时,会在埋点字典中嵌入json,记录详细的数据行为。

           具体参数事件格式,不同的公司有不同的标准,行业常用的格式, 共同属性 + 游戏行为属性。

           共同属性大概,  举个eg:

 

 

4、某款游戏按天统计的实际运营指标数据如下表所示,包含2020/1/1-2020/6/30号6个月的数据。

(1)根据表格内半年数据,复盘项目情况,已经对项目的现状进行说明。不限于后续项目计划安排等内容。  提示:是否有其他数据需要补充,辅助判断项目情况,请说明需要补充的数据以及原因

(2)预测2020年7-9月的付费金额,请描述你的预测建模思路和预测结果。详细数据见Excel附件。

答: 1题涉及到游戏数据不方便展示, 

        2题根据留存的稳定性,活跃用户、新增用户、付费金额呈现相关性。采用多元回归预测  (只提供思路即可)

      

趋势线相对符合,根据导量目标,新增用户每天控制在10000000,

活跃用户在70000000, 得到每天的预计流水在 512000000 浮动。

那之后的月流水预计 15360000000 浮动。