首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
爱吃菜叶的猫
获赞
139
粉丝
1
关注
5
看过 TA
19
女
东莞理工学院
2023
数据分析师
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑爱吃菜叶的猫吗?
发布(70)
评论
刷题
收藏
爱吃菜叶的猫
关注TA,不错过内容更新
关注
2022-04-26 15:39
东莞理工学院 数据分析师
题解 | #计算商场折扣#
筛选出2021年有作答过试卷的用户并用LEAD()OVER()函数计算下一次作答时间,创建新表 计算最大时间窗days_window,用函数MAX()和DATEDIFF()(发现需要知道下一次作答时间,故在步骤1筛选出计算下一次作答时间),计算作答试卷总间隔天数和作答的试卷总数(在新表中筛选) SELECT uid, days_window, ROUND(exam_cnt_2021 / total_days * days_window, 2) AS avg_exam_cnt FROM ( SELECT uid, COUNT(start_time) AS exam_cnt_2021, MAX(...
0
点赞
评论
收藏
分享
2022-04-24 15:33
东莞理工学院 数据分析师
题解 | #计算商场折扣#
利用窗口排序函数row_number()over()筛选出去掉一个最大值和一个最小值后的SQL高难度试卷成绩表,再计算其平均值。 SELECT tag, difficulty, clip_avg_score FROM ( SELECT tag, difficulty, ROUND(SUM(score) / COUNT(score), 1) AS clip_avg_score FROM ( SELECT tag, difficulty, score, ROW_NUMBER()OVER(ORDER BY score ASC) AS rank_asc, ROW_NUMBER()OVER(ORDER ...
0
点赞
评论
收藏
分享
2022-04-07 20:56
东莞理工学院 数据分析师
题解 | #计算商场折扣#
重写toString方法,使其调用toString方法后返回类型 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String className = scanner.next(); Base obj = (Base) Class.forName(className).newInstance(); ...
0
点赞
评论
收藏
分享
2022-03-31 13:55
东莞理工学院 数据分析师
题解 | #四舍五入#
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double d= scanner.nextDouble(); //write your code here...... int i; if (d % (int)d < 0.5) i = (int)d; else i = (int)d + 1; System.out.println(i); } }
0
点赞
评论
收藏
分享
2022-03-29 15:28
东莞理工学院 数据分析师
题解 | #试卷完成数同比2020年的增长率及排名变化#
分别筛选出2021年上半年和2020年上半年每个tag被完成的次数和完成次数排名,用 WITH...AS 建立新表exam_cnt_21_firstHalf和exam_cnt_20_firstHalf,然后用 INNER JOIN 连接两个表,计算增长率和排名变化 WITH exam_cnt_21_firstHalf AS ( SELECT tag, exam_cnt_21, RANK()OVER(ORDER BY exam_cnt_21 DESC) AS exam_cnt_rank_21 FROM ( SELECT tag, COUNT(submit_time) AS exam_cnt_21...
0
点赞
评论
收藏
分享
2022-03-27 22:05
东莞理工学院 数据分析师
题解 | #未完成率较高的50%用户近三个月答卷情况#
该题重点在“SQL试卷上未完成率较高的50%的用户”,将此要求作为用户的子查询,对于此句的理解,举个例子:假设作答过试卷的总用户数为60,其中作答过sql试卷的有50人,取总人数的一半即为30人(若为小数则向上加一位),按sql试卷未完成率对用户进行降序排序,排名小于等于30的即为未完成率较高的人。 SELECT uid, DATE_FORMAT(start_time, '%Y%m') AS start_month, COUNT(start_time) AS total_cnt, COUNT(score) AS complete_cnt FROM ( SELECT uid, start_tim...
0
点赞
评论
收藏
分享
2022-03-22 12:50
东莞理工学院 数据分析师
题解 | #近三个月未完成试卷数为0的用户完成情况#
/** * 分组:group by uid * 计算近三个有作答试卷的月份 用dense_rank()窗口函数对start_time进行降序排序 dense_rank() over (partition by uid order by date_format(start_time, '%Y%m') desc) as...
0
点赞
评论
收藏
分享
2022-03-22 12:50
东莞理工学院 数据分析师
题解 | #近三个月未完成试卷数为0的用户完成情况#
/** * 分组:group by uid * 计算近三个有作答试卷的月份 用dense_rank()窗口函数对start_time进行降序排序 dense_rank() over (partition by uid order by date_format(start_time, '%Y%m') desc) as...
0
点赞
评论
收藏
分享
2022-03-22 12:25
东莞理工学院 数据分析师
题解 | #连续两次作答试卷的最大时间窗#
分组:按用户分组 范围:2021年至少有两天作答过试卷 where year(start_time) = '2021' group by uid having max_diff_days > 1 计算最大时间窗days_window: max(datediff(next_start_time, start_time))+1 根据上述式子,需要找出下次作答时间next_start_time lead(start_time) over (partition by uid order by start_time) as next_start_time ...
0
点赞
评论
收藏
分享
2022-03-21 17:53
东莞理工学院 数据分析师
题解 | #第二快/慢用时之差大于试卷时长一半的试卷#
用窗口函数NTH_VALUE(),可以直接从有序集中获取想要的行数。 SELECT DISTINCT exam_id, duration, release_time FROM ( SELECT exam_id, duration, release_time, NTH_VALUE(TIMESTAMPDIFF(MINUTE, s...
0
点赞
评论
收藏
分享
2022-03-21 17:54
已编辑
东莞理工学院 数据分析师
题解 | #每类试卷得分前三名#
SELECT tid, uid, ranking FROM ( SELECT tag as tid, uid, ROW_NUMBER()OVER(PARTITION BY tag ORDER BY MAX(score) DESC, MIN(score) DESC, uid DESC) AS ranking FROM examination_info JOIN exam_record USING(exam_id) GROUP BY tag, uid ) rankable WHERE ranking <= 3
0
点赞
评论
收藏
分享
2022-03-20 17:36
东莞理工学院 数据分析师
题解 | #点击消除#
采用压栈和弹栈的方法,代码如下: import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); char[] ch = s.toCharArray(); //将字符串转化为char型数组,方便作为形参传入solve方法 solve(ch); } public static void solve(char[] ch)...
心流时间:
其实16行用else即可,因为一共有三种情况,1.栈空;2.栈非空且栈顶帧值等于数组中迭代到的元素值;3.栈非空且栈顶帧值不等于数组中迭代到的元素值,而十四行已经判断了两种情况,所以16行只剩下一种可能性了,不需要再进行判断。
0
点赞
评论
收藏
分享
2022-03-20 16:20
东莞理工学院 数据分析师
题解 | #有效括号序列#
import java.util.*; public class Solution { /** * 用压栈弹栈的方式来实现 * @param s string字符串 * @return bool布尔型 */ public boolean isValid (String s) { // write code here Stack<Character> stack = new Stack<Character>(); for(char c: s.toCharArray()){ //如果碰到左括号,就把相应的右括号入栈 if(c == '(') stack.push(')');...
0
点赞
评论
收藏
分享
2022-03-17 18:38
东莞理工学院 数据分析师
题解 | #满足条件的用户的试卷完成数和题目练习数#
记录一下做题过程中出现的问题: 问题1:因为计算月份数和2021年活跃总天数时用到exam_record表中的start_time列和 practice_record表中的submit_time列,统计难度大。 解决方法:解决该问题的想法是分别在这两个表中筛选出新表,并给新表增加相同的列tag和 act_time,将start_time列和submit_time列的值放到act_time列下,然后tag列下存 放不同的值'exam'和'question'用于计算试卷作答总数和答题总次数。 问题2:根据例题,虽然用户1003的等级为7但是其并没有参与试卷作答和题目练习,采用 用户子查询...
0
点赞
评论
收藏
分享
2022-03-17 16:55
已编辑
东莞理工学院 数据分析师
题解 | #满足条件的用户的试卷完成数和题目练习数#
根据题目要求,统计SQL高难度试卷得分平均值大于80的用户在2021年试卷总完成次数和题目总练习次数,主要是筛选满足条件的用户,所以第一想法是根据用户分组,多层嵌套查询,但由于表多且数据冗杂,发现将条件拆分先筛选表格的方式更加可行。 SELECT uid, exam_cnt, IF(question_cnt IS null, 0, question_cnt) FROM&nbs...
0
点赞
评论
收藏
分享
1
2
3
4
5
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务