牛客479560235号
牛客479560235号
全部文章
分类
归档
标签
去牛客网
登录
/
注册
牛客479560235号的博客
全部文章
(共50篇)
题解 | 查询连续登陆的用户
-- 逻辑拆解:本质上就是一个连续登录问题,这个问题的核心思维是:按照日期给排名,如果登录日期是连续的,那么日期/天减去排名的值是相等的 WITH continu_days AS( SELECT user_id, DENSE_RANK() OVER(part...
2025-06-12
0
13
题解 | 推荐内容准确的用户平均评分
-- 逻辑拆解:先将两个表连接起来,再去判断推荐的内容是不是喜欢的内容 WITH concat_recommend AS( SELECT t1.rec_info_l,t1.rec_user,t2.hobby_l,t2.score FROM recommend_tb t1 IN...
2025-06-12
1
13
题解 | 牛客每个人最近的登录日期(一)
-- 用窗口函数做 SELECT DISTINCT user_id, MAX(date) OVER(partition by user_id) FROM login ORDER BY user_id
2025-05-13
0
27
题解 | 异常的邮件概率
-- 首先要找出正常用户 再去链接 之后按日期分组计算概率 -- 这里特别注意,要保证接收者和发送者都是白名单用户 SELECT t2.date, ROUND(SUM(IF(t2.type = 'no_completed',1,0)) / COUNT(*),3) P FROM us...
2025-05-13
0
33
题解 | 给出employees表中排名为奇数行的first_name
-- 首先必须求出排名 WITH ranking_employees AS( SELECT *,RANK() OVER(order by first_name) ranking FROM employees ) -- 找出排名为奇数 SELECT first_name FROM em...
2025-05-12
0
30
题解 | 密码游戏
方法1: # num = input() # num_1 = str() # for i in range(len(num)): # num_1 += str((int(num[i])+3)%9) # num_2 = num_1[2]+num_1[3]+num_1[0]+num_1[1] #...
2025-05-09
0
27
题解 | 生成数字列表
number_str = input() number = number_str.split(' ') number_list = [] for i in number: x = int(i) number_list.append(x) print(number_list)
2025-05-07
0
21
题解 | 考试分数(三)
-- 一看到排名,这题就确定要用窗口函数了,所以首先要根据分数去语言内排名 WITH ranking_l AS( SELECT id, language_id, score, DENSE_RANK() OVER(partitio...
2025-04-30
0
27
题解 | 牛客每个人最近的登录日期(六)
-- 首先注意读题,是累加(这里就确认要用窗口函数了),然后题目提到有登录却没有刷题的哪一天的数据不需要输出,那么证明这个题就主要用user表和passing_number表 SELECT t2.name u_n, t1.date AS date, SUM(t1.numbe...
2025-04-30
0
33
题解 | 牛客每个人最近的登录日期(二)
-- 先求出用户最近登录日期 WITH max_date AS( SELECT user_id,MAX(date) m_date FROM login GROUP BY user_id ), -- 再去匹配用户的client_id c_u_date AS( SELEC...
2025-04-30
0
25
首页
上一页
1
2
3
4
5
下一页
末页