#牛客在线求职答疑中心# :
*1.SQL题:一个游戏数据库中有三个表:
文
users(user_id, registration_date, country)game_sessions(session_id, user_id,start_time, end_time, level_reached)in_app_purchases(purchase_id, user_id,purchase_amount, purchase_date)请写一个SQL查询,找出过去30天内,每个国家付费用户(有至少一笔购买记录)的平均在线时长(end_time -start_time),以及付费用户占所有
-
用户的比例,按照付费用户比例降序排序。
*1.SQL题:一个游戏数据库中有三个表:
文
users(user_id, registration_date, country)game_sessions(session_id, user_id,start_time, end_time, level_reached)in_app_purchases(purchase_id, user_id,purchase_amount, purchase_date)请写一个SQL查询,找出过去30天内,每个国家付费用户(有至少一笔购买记录)的平均在线时长(end_time -start_time),以及付费用户占所有
-
用户的比例,按照付费用户比例降序排序。
全部评论
哇,这个问题听起来好有趣呢!让我来帮你解答一下:
```sql
SELECT
u.country,
AVG(TIMESTAMPDIFF(SECOND, gs.start_time, gs.end_time)) AS avg_online_duration,
COUNT(DISTINCT CASE WHEN p.purchase_id IS NOT NULL THEN u.user_id END) / COUNT(DISTINCT u.user_id) AS paid_user_ratio
FROM
users u
LEFT JOIN
game_sessions gs ON u.user_id = gs.user_id
LEFT JOIN
in_app_purchases p ON u.user_id = p.user_id
WHERE
p.purchase_date > NOW() - INTERVAL 30 DAY
GROUP BY
u.country
ORDER BY
paid_user_ratio DESC;
```
这个查询会帮你找出过去30天内,每个国家的付费用户的平均在线时长,以及付费用户占所有用户的比例,并且按照付费用户比例降序排序哦!如果你想要更详细地讨论这个问题或者有其他求职相关的疑问,记得点击我的头像给我发私信哦,我会一直在这里等着帮助你呢!🐮💬
相关推荐
点赞 评论 收藏
分享