Dateron
Dateron
全部文章
分类
题解(44)
归档
标签
去牛客网
登录
/
注册
Dateron的博客
全部文章
(共62篇)
题解 | #牛客每个人最近的登录日期(四)#
1.利用窗口函数分组 user_id,排序 date,输出为1则表明是该用户初次登陆日期;2.外层 select 利用 case when,如果排名为1则输出1,否则为0,最后求和,记得这一步要按日期分组,case when 结果为每日新登陆用户数 select a.date ,sum(...
2021-07-25
0
348
题解 | #牛客每个人最近的登录日期(三)#
次日留存率=第一天新增用户中第二天依然登录的用户数/第一天新增用户总数 写完之后觉得自己又写啰嗦了(手动捂脸),“少啰嗦,先看东西”1.利用窗口函数,求出每个用户的初始登陆日期;2.在上表基础上,利用 case when 分组行转列,如果 date 减去初始登陆日期为1,则这条记录为次日登陆记录,记...
窗口函数
2021-07-25
0
381
题解 | #牛客的课程订单分析(三)#
第一种解法1.找出满足题目要求的user_id;2.按照题目要求 select 出全部字段;3.uesr_id in(1 中 select 出的 user_id); select * from order_info where date>'2025-10-15' and product_na...
with
as
2021-07-24
0
454
题解 | #牛客每个人最近的登录日期(二)#
感觉自己写的很啰嗦1.先按 login 表的 user_id 分组,聚合出最大日期,即是最近登陆日期;2.然后分组聚合后的表再和 login 做自连接,用复合主键 concat(user_id,'-',date),这样做的目的是为了匹配到最近一次登录时的设备号;3.上一步的表和 user 表做连接;...
2021-07-24
0
414
题解 | #刷题通过的题目排名#
此题目考察窗口函数三种排名函数的区别1.rank(),按值排序,值相等时不会重复;2.row_number(),按值排序,值相等时会重复,会产生空位;3.dense_rank(),按值排序,值相等时会重复,不会产生空位;根据题目要求,选择 dense_rank() select * ,d...
窗口函数
窗口函数中三个排名函数的区别
2021-07-23
6
549
题解 | #考试分数(三)#
组内排名问题,top n 问题,通常的解法都是窗口函数1.先 grade 用窗口函数,不同 language_id 分组,根据 score 进行组内排名;2.将上述组内排好序的表和 language 表进行 inner join,目的是获取 name 字段;3.在1.2 连接好的表中,select ...
2021-06-08
0
410
题解 | #考试分数(二)#
用窗口函数,相当于新增一列,各科目平均分然后外层筛选条件为 score>avg_score select a.id ,a.job ,a.score from (select * ,avg(score) over (partition by jo...
2021-06-08
1
405
题解 | #获取有奖金的员工相关信息。#
考察表连接和 CASE WHEN连接后的大表中,用 case when 去判断 bonus select c.emp_no ,c.first_name ,c.last_name ,d.btype ,c.salary ,(case when ...
2021-06-08
0
642
题解 | #查找排除当前最大、最小salary之后的员工的平均工资avg_salary#
本题的两个需要注意点的1.当前最大、最小 salary,则必须有条件to_date='9999-01-01';2.先求出 max(salary)、min(salary);2.排除最大、最小,则 where 条件为 salary 不在 max(salary),min(salary) 中,还要再加一个 ...
2021-06-07
0
477
题解 | #获取Employees中的first_name#
考察字符串截取函数left(str,len) 从左边截取,截取xx长度right(str,len) 从左边截取,截取xx长度substring(str,position,len) position:开始位置,len:长度 select first_name from employees or...
2021-06-06
0
511
首页
上一页
1
2
3
4
5
6
7
下一页
末页