一道数据库笔试题

有一张表,记录游戏用户id和它的等级,让你计算 通关率=对每个等级,大于该等级的人数/大于等于该等级的人数。

解法:

首先统计每个等级人数到临时表(用group by);

create table tmp select count(user_id) as cnt, grade from users group by grade;

然后计算每个等级的通关率(用临时表自连接):
select tmp2.grade, tmp2.cnt/sum(tmp1.cnt) as gl from tmp as tmp1, tmp as tmp2 where tmp1.grade >= tmp2.grade group by tmp2.grade;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值