不精独乐乐
不精独乐乐
全部文章
分类
归档
标签
去牛客网
登录
/
注册
不精独乐乐的博客
全部文章
(共156篇)
题解 | #平均工资#
select avg(salary) from salaries where to_date = '9999-01-01' and salary != ( select max(salary) from salaries where to_date = '9999-01-01') and salar...
2023-02-17
0
169
题解 | #获取员工薪水比manager薪水还高的信息#
思路:一张表选出普通员工,另一张表选出经理,两表连接然后对比筛选即可。 select tb1.emp_no, tb2.emp_no, tb1.salary, tb2.salary from ( (select emp_no, salary, dept_no from salaries join de...
2023-02-14
0
175
题解 | #查找在职员工自入职以来的薪水涨幅情况#
思路:①两表相连,用窗口函数max加一列最后工作的时间,形成表tb1; ②用case when分类,选出入职时间的薪水,最后工作时间的薪水,形成表tb2; ③对tb2子查询,计算即可。 select emp_no, max(end_s)-max(start_s) as growth from( se...
2023-02-14
0
235
题解 | #获取薪水第二多的员工的信息#
用两次子查询:①第一次子查询剔除最高薪水;②第二次子查询选出剩下人员里薪水最高者即可。 select emp_no, salary, last_name, first_name from (select * from employees join salaries using(emp_no)) a...
2023-02-13
0
162
题解 | #计算用户的平均次日留存率#
思路: ①将表进行左连接,加入日期相差1天的筛选条件,此时左边表tb1保留全部刷题用户,右边表tb2保留第二天还来刷题的用户; ②去重选择左右两表的用户和日期,形成表tb3,基于tb3进行计算即可。 select count(b)/count(a) from( select distinct tb...
2023-02-11
1
265
题解 | #牛客直播各科目出勤率#
一、思路:要求出勤率需要算每门课程 1、签到人数,2、累计在线时长≥10min的人数(一个人可能多次进出直播,需分组累计)。 二、步骤 ①求课程签到人数:将behavior_tb表和course_tb连接,筛选出签到的人相关信息,形成表tb1; ②求累计在线时长≥10min的人数:将attend_t...
2023-02-11
0
262
题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#
思路来源某度的连续签到得金币那道题,关键在于算出连续买了几天。 步骤: ①将uid去重分组,按照日期排序,然后用日期与排序编号做差得到一个日期dt,只要做dt相同即表明连续购买。 ②count上述相同dt的数量即得到每个uid连续购买的天数,取出最大值即可。 select user_id, max...
2023-02-11
0
285
题解 | #各城市最大同时等车人数#
一、思路:要计算单日最大等车人数关键在于 选出等车人数发生变化的时刻去计算当时的人数,其他任一时刻等车人数都不会变化,不用管。 1、先按天分组,在每一天的分组里去计算每一个人数增减变化时刻的等车人数 (人数增减变化的时刻无非是:下单时刻、司机接单前取消时刻、司机接单后不上车的取消时刻、司机接单后上车...
2023-02-10
0
339
题解 | #工作日各时段叫车量、等待接单时间和调度时间#
思路: ①将表1左连接表2,不用join而是left join因为order_id是null的行也需要计算,需要保留表1全部信息,形成tb1,并转化event_time分别为一周的第几天 a、一天中的第几小时(或者精确时间时分秒)b,a和b用于时间筛选和分组。 ②根据时间b对数据进行时段分组、聚类,...
2023-02-10
0
266
题解 | #国庆期间近7日日均取消订单量#
思路:①完成订单的时间看finish_time,但未完成订单的null显示在其他列,可以选start_time来计数。 ②因此窗口函数用count(start_time)over(order by date(finish_time))来计算完成/未完成的订单数,框定时间窗口为 当前日期至前推6天之内...
2023-02-09
0
204
首页
上一页
7
8
9
10
11
12
13
14
15
16
下一页
末页