风雪行
风雪行
全部文章
分类
题解(11)
归档
标签
去牛客网
登录
/
注册
风雪行的博客
全部文章
(共35篇)
题解某乎问答最大连续回答问题天数大于等于3天用户及其对应等级
连续回答问题天数,连续签到天数等等,固定思路:使用窗口函数,根据用户分组,日期进行排序构造新列a,同时对原数据进行去重,每天每个用户只要保留一条记录,然后时间列和a列相减得到新列b,如此一来只要是连续答题,或签到。那么相减后得到的值相同。最后再根据用户id和b列分组计数就可以得到连续答题的天数了。 ...
2023-01-02
2
290
题解 | #牛客直播各科目同时在线人数#
同时在线人数固定思路:根据进入和退出时间构造新列num进行编码,进入时num编码为1,退出时编码为-1;将退出时间和进入时间使用union all进行合并;同时使用窗口函数,对课程id进行分组,按照时间进行升序排序,此时对构造的num列进行窗口累加,则每进入一个用户则加一,退出一个则减一。注意:如果...
2023-01-01
0
162
题解 | #牛客直播各科目出勤率#
明确题意:出勤率(在线时长10分钟及以上人数),可以对attend_tb表根据course_id, user_id分组用sum(timestampdiff(minute, begin,end))计算出勤时间(退出再进累计够10分钟也算),统计满足条件的user_id数。报名人数:behavior_t...
2023-01-01
0
183
题解 | #牛客直播开始时各直播间在线人数#
感谢大佬总结的思路:求某一时刻同时在线人数,只需判断该时刻 between '进入时间' and '退出时间';不过这道题涉及到字符串转时间然后进行时间比较的。这里可以使用str_to_date将str按格式转为datetime然后进行比较。 select ct.course_id, ct....
2023-01-01
0
205
题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#
对于连续类问题,思路:构造新的一列a,a列必须是根据对应时间排好序的。因为a列有序,同时跟本就有序的时间列相减,此时如果是连续两天购买,那么相减后值就会相同,具体演示如下。 select sales_date, user_id, date_sub(sales_...
2023-01-01
1
211
题解 | #各城市最大同时等车人数#
问题关键,弄清等车时间。这里有几个时间维度。首先是等车开始时间。这个是唯一的,event_time,随后是取消时间,这里有好几种情况,情况一:一直无司机接单、超时、途中用户主动取消打车,记录打车结束时间,这里应该是end_time, 情况二:乘客上车前,乘客或司机点击取消订单,会将打车订单的fini...
2023-01-01
0
196
题解 | #工作日各时段叫车量、等待接单时间和调度时间#
明确题意:统计周一到周五各时间段叫车量,平均等待接单时间和平均调度时间,平均调度时间仅计算完成了的订单。这里我用的是date_format对时间进行划分,这里需要注意格式化的时间,和python中datetime的时间格式化符号不同。当然参考其他大佬的答案,使用hour()对时间分段也更加简洁注意:...
2023-01-01
1
279
题解 | #国庆期间近7日日均取消订单量#
因为数据是比较干净的,按日期升序,且中间没有缺失天数。故可使用窗口函数一步到位(偷懒了)取固定窗口大小的数据进行统计用的也比较少,特此记录一下:rows between 6 preceding and current row select * from ( select date(co.fi...
2022-12-31
2
199
题解 | #有取消订单记录的司机平均评分#
注意点:找到21年10月有过取消订单记录的司机,只要在该时间段有取消记录则都计入with rollup: 写在分组函数之后,会对分组后的数据进行汇总。用的比较少,这里记录一下 select ifnull(co.driver_id, '总体') as driver_id, round(avg(...
2022-12-31
0
173
题解 | #每个城市中评分最高的司机信息#
说实话,题意描述确实是有误导性的,需要统计的是平均分评分最高的司机数据,而不是评分最高的司机。注意点:日均接单数,日均行驶里程数。一日可能有多单,但是对该日做分母只能计为1sum(co.mileage) / count(distinct date(co.order_time)) as avg_mil...
2022-12-31
0
188
首页
上一页
1
2
3
4
下一页
末页