一些SQL题目

1、我们的产品是一个提供下载能力的工具类应用(应用商店),默认打开页面是首页。发现存在一些用户打开进入首页后,没有进入其他页面就离开了。现在想知道,是不是在首页下载游戏的用户,比下载非游戏、未下载用户更容易直接从首页离开,要如何进行验证。

table1: user_id, date, action_type, page, app_name, time

table2: app_name(这里的都是游戏,不在这里的都是非游戏),用SQL作答

分析:计算 在首页下载游戏的用户、下载非游戏、未下载用户 的首页离开率

# 首先,筛选出所有用户在首页的活动
with m1 as(
select user_id,  date,  action_type,  page,  app_name,  time,
       case when action_type = '下载' then 
	   				case when t1.app_name = t2.app_name then '首页下载游戏用户'
								else '首页非下载游戏用户' 
					end
				else '未下载用户'
		end as user_type
from t1 left join t2 using(app_name)
where page = '首页'
 ),
 # 计算每个用户的首页离开率(用户是否进入其他页面)
 m2 as (
 select user_id,
 		case when min(case when page != '首页' then 1 else 0 end ) = 0 then 1 else 0 end as exit_from_homepage
 from t1 
 group by user_id
)
# 计算三类用户从首页离开的平均概率
select m1.user_type,
		count(sum(m2.exit_from_homepage))/count(*) as p
from m1 left join m2 using(user_id)
group by user_type



全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务