通辽可汗克鸽勃
通辽可汗克鸽勃
全部文章
题解
归档
标签
去牛客网
登录
/
注册
通辽可汗克鸽勃的博客
全部文章
/ 题解
(共28篇)
题解 | #某店铺的各商品毛利率及店铺整体毛利率#
不难,但是步骤繁琐,做题时要注意status,然后就是union和order by 的先后顺序了 在转变成百分比的时候括号特别多,不要少了 with tmp as (SELECT id, sum(in_price*if(status=2,-cnt,cnt)) as all_in, ...
Mysql
Oracle
2021-12-14
7
856
题解 | #统计2021年10月每个退货率不大于0.5的商品各项指标#
比较简单的题,子查询计数,然后进行统计清晰明了,要注意筛查分母为0 的情况 SELECT product_id,round(click/showtimes,3) as ctr, if(click=0,0,round(cart/click,3)), if(cart=0,0,...
Mysql
Oracle
2021-12-14
6
433
题解 | #每天的日活数及新用户占比#
这题算是比较简单的了,这次求新顾客用的累计次数和为1 而不是链接的方法,算是一种新的思路了,大家可以看一看! 因为之前已经说过了如何进行日期的拆分和求顾客的登录次数,说以不在赘述,代码如下 select date,count(uid) as dau, round( sum(if(times=...
Mysql
Oracle
2021-12-14
15
1511
题解 | #统计活跃间隔对用户分级结果#
代码又臭又长,用了很多次子查询,感觉很不聪明的样子,基本思路是如下 1:判断是不是找出最后一次登录时间差 2:是不是新顾客 3:标签分组 4:统计 select grade ,round( count(*)/(select count(distinct uid) from tb_user_...
Mysql
2021-12-14
13
1600
题解 | #2021年11月每天新用户的次日留存率#
最近练习了大厂的题目,发现其实sql语句总量并不大,解题重点在于逻辑一定要清晰。一下有几个注意点 1:先将跨天的日期表生成,这种简单的行相加就用union函数就可以,其中union all不去重 而union则会自动过滤重复的行 2:如何判断新客户,可以理解以前没有出现过,所以可以统计累计出现次数,...
Mysql
Oracle
2021-12-14
54
3138
题解 | #每篇文章同一时刻最大在看人数#
第一次做到这个类型的题目,一定要收藏一下。 本题的关键点: 1一个时间戳表格,记录每个时间点读者的行为, 2同时根据题目先进后出,对sign进行降序排序 3搭配sum + 窗口函数(order by)是累计和,这也是关键点 select artical_id,max(uv) as max_uv fr...
Mysql
Oracle
2021-12-09
1
341
题解 | #平均播放进度大于60%的视频类别#
本题类型和之前类似,相比if函数我比较常用case when daydiff和timestampdiff 前者是日期差,后者是时间差更为灵活 TIMESTAMPDIFF(day/hour/second....., '小时间', '大时间') 百分比的表示则先把avg*100 再用concat和%...
Mysql
Oracle
2021-12-01
64
4075
题解 | #各个视频的平均完播率#
使用sum+ case when函数能就能解决,不过如果是count 配合case when比较容易出错 select user.video_id, round(sum(case when (end_time-start_time)>=duration then 1 ...
Mysql
Oracle
2021-12-01
5
797
首页
上一页
1
2
3
下一页
末页