jiang_dr
jiang_dr
全部文章
分类
题解(78)
归档
标签
去牛客网
登录
/
注册
jiang_dr的博客
目前专注于SQL的练习
TA的专栏
78篇文章
1人订阅
SQL练习
78篇文章
821人学习
全部文章
(共58篇)
题解 | #牛客每个人最近的登录日期(六)#
来自专栏
select u.name u_n, a.date, sum(b.number) ps_num from passing_number a, passing_number b, user u where a.date >= b.date and a.user_id = b.user_id an...
Mysql
Sqlite
2021-11-08
1
396
题解 | #牛客每个人最近的登录日期(五)#
来自专栏
全注释,一步一步思路解析 思路:首先理解次日留存率,次日留存率即:后一天的新用户(第二次登录)的总数 / 当日新用户登录的总数 示例:13号登录的新用户,在14号也登陆了 题目解析完,那接下来我们就只需要求上面两个的值了 后一天的新用户(第二次登录)的总数:今天登录了,第二天也登录了,且今天登录的...
Mysql
Sqlite
2021-11-05
2
527
题解 | #牛客每个人最近的登录日期(四)#
来自专栏
在每一个date分组中,有数条记录,这些记录中,只有满足用户的date是首次(min)的,才被记录 计数神器:sum + case select date, sum( case when (user_id, date) in (select user_id, min(date) from lo...
Sqlite
Mysql
2021-11-04
2
481
题解 | #牛客每个人最近的登录日期(三)#
来自专栏
思路:问题关键点在于怎么求出次日,及成功率 求出次日的方法已经在题目中给出了,即DATE_ADD(yyyy-mm-dd,INTERVAL 1 DAY) 求用户第一次登录的方法是使用min(date),然后结合DATA_ADD函数求出用户次日登录的结果。 select user_id, D...
Mysql
Sqlite
2021-11-03
1
418
题解 | #牛客每个人最近的登录日期(二)#
来自专栏
思路:本体有两种思路可以求解 第一种思路: 先根据用户分组,查询出每个用户登录的最新日期 SELECT user_id, max(date) AS date FROM login GROUP BY user_id 根据题意可得我们需要查询出 client_id,所以我们将第一步的表与logi...
Mysql
Sqlite
2021-11-02
1
507
题解 | #牛客每个人最近的登录日期(一)#
来自专栏
思路: 每个用户最近一天也就是说需要将user_id分组,取 max(date),最后根据user_id升序即可 完整代码: SELECT user_id, max(date) AS d FROM login GROUP BY user_id ORDER BY user_id
Mysql
Sqlite
2021-11-02
1
522
题解 | #异常的邮件概率#
来自专栏
思路: 因为必须要是正常用户,所以需要判断发送者和接收者必须都为正常用户,即 is_blacklist = 0,以此来排除黑名单用户 再根据日期分组,求出失败的概率:发送不成功的次数/count(日期) 最后根据日期升序排序 完整代码: SELECT date, ROUND(SUM(type =...
Mysql
Sqlite
2021-11-01
1
440
题解 | #找到每个人的任务#
来自专栏
思路:左连接,再根据id排序 注意:这里person的id对应task中的person_id 完整代码: SELECT p.id, p.name, t.content FROM person AS p LEFT JOIN task AS t ON p.id = t.person_id ORDER...
Mysql
Sqlite
2021-11-01
1
447
题解 | #刷题通过的题目排名#
来自专栏
思路:我们根据题目给出的信息,就可以得知,我们需要自己构建一列用来对通过题目的数量大小进行排序,很容易就想到我们需要在 SELECT 上做文章 那么我们首先进行一个普通的查询,即 SELECT * FROM passing_number ORDER BY number 然后我们根据主查询提供的 n...
Mysql
Sqlite
2021-10-29
1
446
题解 | #出现三次以上相同积分的情况#
来自专栏
思路:其实就是 GROUP BY 和 HAVING 的应用,HAVING 的作用是过滤分组后的结果 SELECT number FROM grade GROUP BY number HAVING count(number) >= 3
Mysql
Sqlite
2021-10-29
1
639
首页
上一页
1
2
3
4
5
6
下一页
末页