辰智
辰智
全部文章
分类
题解(7)
归档
标签
去牛客网
登录
/
注册
辰智的博客
全部文章
(共7篇)
题解 | #获得积分最多的人(三)#
结题思路:在上一题的基础上,使用case when 判定是加还是减 select id,name,grade_sum from( select *, rank() over(order by grade_sum desc)&nbs...
SQL
case
when
2021-08-08
0
362
题解 | #牛客的课程订单分析(五)#
结题思路:使用lead窗口函数取得每个日期的下一个日期,然后min每个用户全部最小日期得到第一次购买,min下一个日期得到第二次购买 SELECT user_id, min(date) as first_buy_date, min(second_buy_date)as&nbs...
SQL
窗口函数
2021-08-08
0
397
题解 | #考试分数(三)#
题目:请你找出每个岗位分数排名前2名的用户,得到的结果先按照language的name升序排序,再按照积分降序排序,最后按照grade的id升序排序 结题思路:先对每个岗位的分数进行排名,然后取排名1、2的结果即可。但需要注意结果表中,JAVA语言出现3个用户,其中有两个分数一致,也...
SQL
窗口函数
排序
2021-08-08
0
500
题解 | #考试分数(二)#
结题思路:使用SQL窗口函数得到每个job的平均分,然后筛选高于平均分的用户 select id,job,score from ( select id,job,score, avg(score) over(partition by jo...
SQL
窗口函数
2021-08-08
0
420
题解 | #牛客每个人最近的登录日期(五)#
【统计每个日期新用户的次日留存率】可以分解为:次日留存率 = 某日新用户次日仍活跃 ÷ 某日新用户,使用case when可得到如下代码 select date, round(sum( &n...
SQL
留存率
新用户
case
when
2021-08-07
0
357
题解 | #将employees表的所有员工的last_name和first_name拼接起来作为Name#
普通解法(复杂解法) select s1.emp_no,s1.salary, (select sum(salary) from salaries as s2 where s2.emp_no<=s1.emp_n...
SQL
窗口函数
2021-08-07
3
510
题解 | #对所有员工的薪水按照salary降序进行1-N的排名#
dense_rank函数的功能与rank函数类似,dense_rank函数在生成序号时是连续的,而rank函数生成的序号有可能不连续。dense_rank函数出现相同排名时,将不跳过相同排名号,rank值紧接上一次的rank值。在各个分组内,rank()是跳跃排序,有两个第一名时接下来就是第四名,d...
SQL
排序
2021-08-01
0
370