不精独乐乐
不精独乐乐
全部文章
分类
归档
标签
去牛客网
登录
/
注册
不精独乐乐的博客
全部文章
(共156篇)
题解 | #每月及截止当月的答题情况#
#思路: #①准备一张底表tb1,每个月去重以后的活跃用户数,即字段为:年月、uid; #②基于tb1,判断新增用户(最早活跃的月份跟当前月份相等),新增记为1,非新增记为0,形成tb2; #③基于tb2,根据月份聚合,计算每个月的活跃用户数、新增数,形成tb3; #④基于tb3,用窗口函数逐月计算...
2023-05-05
0
236
题解 | #每份试卷每月作答数和截止当月的作答总数。#
#思路:①先计算每个试卷在每个月的作答次数;②再用窗口函数针对每个试卷进行逐月累加即可 select exam_id, mt, a, sum(a)over(partition by exam_id order by mt) from( select exam_id, date_format(sta...
2023-05-03
0
197
题解 | #第二快/慢用时之差大于试卷时长一半的试卷#
#思路:思路其实简单,分别选出第二快、第二慢的用时,然后跟试卷长度作比较即可。就是代码长。 select tb2.exam_id, duration, release_time from( #选出第二慢的数据 select exam_id, a from( select exam_id, tim...
2023-05-02
0
238
题解 | #每类试卷得分前3名#
#思路:关键在于排序的规则,先按分数最大值、再按最低分数的大值、最后按uid大值进行排序,所以要先准备这些数值; #①两表连接,根据tag和uid分组聚合,求出每类tag下不同uid的max(score)、min(score),形成表tb1; #②基于表tb1,用row_number()排序,形成表...
2023-05-02
0
226
题解 | #每个6/7级用户活跃情况#
#思路:整体思路其实很简单,就是把要求的数分别求出来,在进行相连即可,就是代码长。 #另外:由于活跃的月份数和天数不分试卷还是联系,所以先把试卷表和练习表union all形成表tb1备用。 with tb1 as (select uid, start_time as a, 1 as b from ...
2023-05-02
0
254
题解 | #得分不小于平均分的最低分#
#思路: #①选出SQL的exam_id; #②将前一步选出的exam_id作为子查询,选出这些exam_id对应的score和平均分; #③选出score>=平均分情况下的min(score)即可。 select min(score) from (select score, avg(sco...
2023-05-01
0
205
题解 | #浙大不同难度题目的正确率#
#思路:三表连接,筛选浙大学生,用难度分组聚合再计算即可。注意,未答题的浙大学生不显示,所以要用第二张表左联第一张表。 select difficult_level, count(if(result='right',1,null))/count(result) a from question_pr...
2023-04-28
0
186
题解 | #统计复旦用户8月练题情况#
#思路:因为要保留8月没有练题的人,所以不能把表连接以后用日期去筛选,而是要先筛选后做表连接; #①选出复旦的人,形成tb1; #②选出8月做题的人,形成tb2; #③tb1左联tb2,分组计算即可。 select tb1.device_id, university, count(questio...
2023-04-27
0
233
题解 | #月均完成试卷数不小于3的用户爱作答的类别#
#思路:①先选出9月份完成试卷>=3的uid;②两表连接,将之前选出的uid作为子查询条件,再根据tag分组计数即可; select tag, count(tag) tag_cnt from exam_record left join examination_info using(exam_i...
2023-04-25
0
222
题解 | #考试分数(三)#
#思路:根据每种语言分组排序(用dense_rank),跟第二张表连接,取出排序<=2的数据即可。 select tb1.id, name, score from (select id, language_id, score, dense_rank()over(partition by la...
2023-04-24
0
237
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页