早起的虫儿e
早起的虫儿e
全部文章
题解
归档
标签
去牛客网
登录
/
注册
早起的虫儿e的博客
全部文章
/ 题解
(共53篇)
题解 | #牛客每个人最近的登录日期(五)#
问题描述:每日新用户的次日留存率问题分解: 每日 group by date新用户 (user_id,date) IN (SELECT user_id,MIN(date) FROM login GROUP BY user_id;次日留存率=同时符合新用户+次日(第二天)有登录记录 =(user_id...
SELECT子查询
IFNULL
ROUND
case表达式
2021-04-16
2
836
题解 | #牛客每个人最近的登录日期(四)#
解题关键:新用户=登录日期date 等于 按user_id分组中的MIN(date) 方案1:GROUP BY分组+CASE表达式嵌套新用户的过滤+SUM函数求和得新用户数量第一步:用户最早登录的记录作为后续新用户的过滤条件 SELECT user_id,MIN(date) FROM login...
窗口函数
where子查询
分组group
ROW_NUMBER
case表达式
2021-04-14
0
469
题解 | #牛客每个人最近的登录日期(二)#
*方案1:login表+dense_rank窗口函数按date排序作为临时表t;联结user,client表,where过滤t.date_rank获得每个用户最近一次登录的记录 SELECT u.name AS u_n,c.name AS c_n,t.date FROM (SELECT *,DENS...
where子查询
子查询值的传递
分组group
DENSE_RANK
2021-04-13
0
373
题解 | #牛客每个人最近的登录日期(一)#
方案1:MAX函数+group by SELECT user_id,MAX(date) AS d FROM login GROUP BY user_id ORDER BY user_id ASC;方案2:dense_rank窗口函数 SELECT t.user_id,t.date FROM (SE...
MAX
DENSE_RANK
2021-04-11
0
490
题解 | #异常的邮件概率#
问题描述:现在让你写一个sql查询,每一个日期里面,正常用户发送给正常用户邮件失败的概率是多少,结果保留到小数点后面3位(3位之后的四舍五入),并且按照日期升序排序,上面例子查询结果如下: 解题思路:1)按日期分组group by2)计算正常用户发邮件给正常用户的总次数,失败的次数3)失败次数,总...
取数
where子查询
ROUND
表联结
2021-04-11
1
566
题解 | #统计salary的累计和running_total#
题目描述:按照salary的累计和running_total,其中running_total为前N个当前( to_date = '9999-01-01')员工的salary累计和,其他以此类推。 具体结果如下Demo展示。解答:本题考查窗口函数中使用聚合函数 SELECT emp_no,salary...
窗口函数
聚合函数
2021-04-09
42
1458
题解 | #使用含有关键字exists查找未分配具体部门的员工的所有信息。#
问题描述:使用含有关键字exists查找未分配具体部门的员工的所有信息。解答: SELECT e.* FROM employees e WHERE NOT EXISTS (SELECT * FROM dept_emp d WHERE d.emp_no = e.em...
where子查询
谓词exists
2021-04-09
5
667
题解 | #分页查询employees表,每5行一页,返回第2页的数据#
mysql通用的分页语句 每页显示PageSize条记录 第PageSize页:(PageNo-1)*PageSize,PageSize >如:每页显示3条记录(长度为3)第1页:0,3 包含页:1,2,3 limit 0,3第2页:3,3 包含页:4,5,6 limit 3,3第3页...
LIMIT
分页查询
2021-04-09
4
570
题解 | #查找排除当前最大、最小salary之后的员工的平均工资avg_salary#
题目描述:查找排除最大、最小salary之后的当前(to_date = '9999-01-01' )员工的平均工资 方案1:过滤max(salary),min(salary),求平均 SELECT AVG(salary) AS avg_salary FROM salaries WHERE to_...
AVG
MIN
MAX
UNION
2021-04-09
0
786
题解 | #获取Employees中的first_name#
题目描述:获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列解答: 方案1:采用right函数SELECT first_nameFROM employeesORDER BY RIGHT(first_name,2) ASC;方案2:采用subs...
LEFT
截取字符串
RIGHT
SUBSTR
2021-04-09
3
698
首页
上一页
1
2
3
4
5
6
下一页
末页