首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
qstalking
获赞
1218
粉丝
12
关注
3
看过 TA
54
男
赣南师范大学
2016
数据产品
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑qstalking吗?
发布(14)
评论
刷题
收藏
qstalking
关注TA,不错过内容更新
关注
2021-01-26 17:54
赣南师范大学 数据产品
【结合数据表和输出结果进行审题】
#部门(时间限制)--员工当前薪水最高 #d001部门有3名员工,薪水表符合时间限制的有两条记录,分别来自2名员工,而输出结果只有一条。 #所以题目中的薪水最高是针对部门而不是某个员工 select d.dept_no ,s.emp_no ,s.salary from salaries s,dept_emp d where s.emp_no...
0
点赞
评论
收藏
分享
2021-01-26 17:25
已编辑
赣南师范大学 数据产品
【妙解】查询每组中位数位置上的记录
#中位数本身就是先按自然数排名,再取数。排序函数选用row_number 方法一(妙解) 用一条规则统一奇数个数时和偶数个数时的中位数位置。无论奇偶,中位数的位置距离(个数+1)/2 小于1,不信你随便写个试试。 select id,job,score,s_rank from (select * ,(row_number()over(partition by job order by score&nb...
牛客232621773号:
方法一奇数和偶数应该分开讨论一下 case when t1.num%2=0 then abs(t1.t_rank-(t1.num+1)*1.0/2)<1 else abs(t1.t_rank-(t1.num+1)/2)<1 end
0
点赞
评论
收藏
分享
2021-01-26 15:11
赣南师范大学 数据产品
关于中位数的特征
#中位数的特征: #当个数为偶数时,中位数的起始位置等于个数/2,结束位置等于个数/2+1 #当个数为奇数时,中位数的起始位置等于向上取整(个数/2),结束位置等于向上取整(个数/2) #用除以2的余数是否为0来判断奇偶,%2=0 #记得取整数,本题用ceiling函数向上取整(返回不小于该数的最小整数值)或round(数,0)四舍五入取整都可。 select job ,case when count(score)%2=0 then ceil...
牛客367746035号:
是偶数的话,可不可不要用 ceiling,直接用 count(score)/2 作为 start ,(count(score)/2)+1 作为 end ?
0
点赞
评论
收藏
分享
2021-01-26 14:35
已编辑
赣南师范大学 数据产品
筛选出组内排名前2的记录
#从输出结果来看,需考虑并列第一的情况,并且依然存在第二名。确定排序函数为dense_rank #整体思路: #1.创建一个中间表,包含需要输出的除了name以外的字段以及分数的组内排名; #2.关联语言表查语言名称 #3.用where筛出组内排名等于1或2的记录 #4.各种排序。 select t1.id ,l.name ,t1.score from (select&nbs...
0
点赞
评论
收藏
分享
2021-01-26 14:02
赣南师范大学 数据产品
从一个表中查询大于(分组后平均值)的记录
#整体思路:建一个中间表,包含要查询的所有字段以及需要比较的平均值。然后要什么取什么。 select t1.id ,t1.job ,t1.score from (select id,job,score,avg(score)over(partition by job)as avg_score from grade)t1 where t...
0
点赞
评论
收藏
分享
2021-01-26 13:33
赣南师范大学 数据产品
统计每人每个刷题日期的累计刷题通过数
#明确问题: #登录不一定刷题,刷题不一定通过。刷题了就会存在刷题表里。 #三张表:登录表、刷题表、用户表。 #因为有登录没有刷题的数据不需要输出,所以截止到某天指的是刷题表有记录的日期。没有用到登录表。 #用窗口函数按姓名分区按日期排序计算累计数。 select u.name as u_n ,p.date as date ,sum(p.numbe...
王敬宇:
阅读理解满分
0
点赞
评论
收藏
分享
2022-04-02 19:55
已编辑
赣南师范大学 数据产品
统计每个日期新用户的次日留存率
#明确问题:12号的新用户次留是指在12号是第一次登录,并且在13号也登录了。 #分母:当前日期新用户的特征是 当前日期=该用户所有登录日期的最小值 #分子:当前日期作为前一天有该用户的登录记录 并且是第一次登录。(代码中的-1是把某个用户在整张login表的日期-1,12号作为前一天有这个人,说明13号有这个人。) 【易错点】因为分母有可能为0,所以用ifnull(不为null时返回的值,为null时返回的值),这里指定为null时返回0;每天登录用户去个重,避免重复计算用户数(用with temp as 对login表去重或者sum case when ...改为count(di...
高质量搬砖人:
太强了太强了
0
点赞
评论
收藏
分享
2022-04-02 19:43
已编辑
赣南师范大学 数据产品
统计每个日期登录新用户个数
#明确问题:登录的当前日期=该用户所有登录日期的最小值 select date ,count(distinct case when (user_id,date) in (select user_id,min(date)from login group by user_id) then user_id else null end) from login group by date order by date;
这样真的是太好了:
如果新用户,第一天登录多次,就不适用了吧?
0
点赞
评论
收藏
分享
2021-01-26 00:10
赣南师范大学 数据产品
计算次日留存率
#第一次登录时间 min(date) 后一天 date_add(min(date),interval 1 day) #分母是表里的去重总用户数,分子是(用户id,date)满足次日留存的条件。 select round(t1.c1/count(distinct l.user_id),3)as p from login l join (select count(user_id) as c1 from login l where (user_id,date) in&nbs...
0
点赞
评论
收藏
分享
2021-01-25 23:16
赣南师范大学 数据产品
where(多个字段)in(子查询)
#不同日期会对应不同的设备。 #本题中用户ID和日期可以确定唯一记录,所以多表关联+where过滤(用户ID,日期) select u.name as u_n ,c.name as c_n ,l.date from login l join user u on l.user_id=u.id...
0
点赞
评论
收藏
分享
2021-01-25 19:19
赣南师范大学 数据产品
邮件发送失败的概率,除去发件人或收件人为黑名单的情况
方法1(常规思路):表1(日期,失败个数)表2(日期,邮件总数) ,最后用日期连接两表,分子除以分母计算概率。 select t2.date ,round(t1.c1/t2.c2,3)as p from (select date,count(id) as c1 from email where send_id in(select id from user where is_blacklist=0) and receive_id i...
0
点赞
评论
收藏
分享
2021-01-25 16:19
已编辑
赣南师范大学 数据产品
排序函数row_number、rank、dense_rank的区别
口诀: row_number 不存在并列 dense_rank 和rank存在并列,但rank很跳。 口诀的意思是: row_number:不考虑并列的情况,哪怕分数相同,排名都是一溜下来的自然数。 dense_rank和rank 考虑并列的情况,区别在于rank很跳,并列排名的个数会影响接下来的排名,表现为数字的中断。而dense_rank 不管有几个并列的第5名,接下来都是从6开始排。 如下图所示 本题的具体代码为: select id &...
0
点赞
评论
收藏
分享
2021-01-25 15:42
赣南师范大学 数据产品
在同一行求累计数,可使用聚集函数作为窗口函数
select emp_no ,salary ,sum(salary)over(order by emp_no)as running_total from salaries where to_date = '9999-01-01';
0
点赞
评论
收藏
分享
2021-01-25 15:29
赣南师范大学 数据产品
按照奖金类型和工资发奖金
思路1:题目可以发现奖金类型与奖金比例的关系是btype*0.1,所以可以直接计算。(这里要用*0.1,不能用/10,否则会报错) select e.emp_no ,e.first_name ,e.last_name ,b.btype &...
木下藤吉郎:
思路一是不对的,如果全表btype有4、5、6那就算出来是错的。当然这里巧合刚好存在这几种类型。
0
点赞
评论
收藏
分享
1
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务