JezeChou
JezeChou
全部文章
题解
归档
标签
去牛客网
登录
/
注册
JezeChou的博客
我随便写写,你随便看看
全部文章
/ 题解
(共25篇)
题解 | #牛客的课程订单分析(七)#
“写出一个sql语句查询在2025-10-15以后,同一个用户下单2个以及2个以上状态为购买成功的C++课程或Java课程或Python课程的来源信息,第一列是显示的是客户端名字,如果是拼团订单则显示GroupBuy,第二列显示这个客户端(或者是拼团订单)有多少订单,最后结果按照第一列(source...
MySQL
ifnull
2021-06-26
33
1654
题解 | #考试分数(五)#
本题是 #考试分数(四)# 的升级版。1、根据 #考试分数(四)# 得出位于job对应的中位数位置 select job, ceil(count(*) / 2) as start, ceil(count(*) / 2 + 0.5) as end from grade gro...
MySQL开窗
MySQL
sql多条件查找
2021-06-23
1
468
题解 | #考试分数(四)#
有三种解答方式:1、利用数学技巧,中位数的位置取决于总数的奇偶性,count(*) / 2 要么被整除,要么除被整除外还剩0.5。 select job, ceil(count(*) / 2) as start, # 无论count(*) 的奇偶性,中位数第一位置总是它 ceil(c...
MySQL
中位数
2021-06-21
0
540
题解 | #考试分数(三)#
需要输出每个岗位分数前两名的用户,意味着需要使用开窗,但题目中的前两名并没有说明是哪种类型的排名,根据报错结果推测是dense_rank。 首先,采用开窗进行分组排序 select *, dense_rank() over(partition by g.language_id ord...
MySQL开窗
MySQL
2021-06-21
0
393
题解 | #牛客每个人最近的登录日期(五)#
此题应该是目前牛客处理比较复杂的sql题了。 一、审题“写出一个sql语句查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序。”根据题目描述,次日留存率指新用户第二天登录的个数除以新用户第一天登录的个数。 二、解题1、统计新用户第一天登录的次...
date_add
MySQL
ifnull
sql多条件查找
次日留存率统计
case...when
2021-06-18
6
733
题解 | #牛客每个人最近的登录日期(四)#
统计每个日期登录新用户个数。1、查找新用户,即对于user_id,其登录的最小日期,则为新用户 select user_id, min(date) from login group by user_id2、统计每个日期登录的新用户个数首先,统计每个日期登录的用户个数,如下 select ...
MySQL
sql多条件查找
case...when
2021-06-18
0
333
题解 | #使用含有关键字exists查找未分配具体部门的员工的所有信息。#
考虑到后面输出的顺序不变,所以最终查找是在原表中,然后在满足条件的基础上输出结果。1、考虑到会涉及排名,首先可以想到使用开窗,此处使用row_number select first_name, row_number() over(order by first_name) as ranking...
MySQL开窗
MySQL
2021-06-10
0
449
题解 | #字符个数统计#
根据题目要求:1、ASCII码范围在0~1270 <= ord(string) <= 1272、相同字符只计算一次,即去重set(string) 终上,最终代码: def count_character(str): string = ''.join(set(str)) # 去重...
华为机试
Python3
字符个数统计
2021-06-07
59
5474
题解 | #查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部#
查找描述信息(film.description)中包含robot的电影对应的分类名称(category.name)以及电影数目(count(film.film_id)),而且还需要该分类包含电影总数量(count(film_category.category_id))>=5 根据题目要求进行拆...
MySQL
where与having
2021-06-06
1
536
题解 | #查找在职员工自入职以来的薪水涨幅情况#
首先,容易错误的地方,以在职期间最大薪水减去最小薪水,忽略了中途被降薪的case。其次,按解题思路应该是在职员工最小日期对应的薪水减去最大日期的薪水。1、获取在职员工的所有信息 select * from salaries where emp_no in ( ...
MySQL
2021-06-03
0
570
首页
上一页
1
2
3
下一页
末页