一些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