元保数科手撕代码

insert into a
values
(1,'2020-09-01',1,0),
(1,'2020-09-02',1,10),
(2,'2020-09-01',2,0),
(2,'2020-09-01',2,0),
(2,'2020-09-01',3,0),
(2,'2020-09-01',3,10);

select sum(case when a2.cons>0 then 1 else 0 end)/count(distinct a1.user_id)
from (select *,row_number()over(partition by user_id order by call_time)as ranking
from a)as a1
inner join (select *,row_number()over(partition by user_id order by call_time)as ranking
from a)as a2
on a1.ranking+1=a2.ranking and a1.user_id=a2.user_id
where a1.ranking=1 and a1.cons=0
全部评论
但是注意的是,where ranking=1一定要放在子查询的外面,因为查询顺序是先where 后select
点赞 回复 分享
发布于 2021-04-07 10:32
牛客网上很常规的题目变形
点赞 回复 分享
发布于 2021-04-07 10:31

相关推荐

牛客50327486...:腾讯官方:我们没有人机对局
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务