
SQL需求
文章平均质量分 52
鸡康
这个作者很懒,什么都没留下…
展开
-
SQL88 最差是第几名(二)
原题链接https://www.nowcoder.com/practice/165d88474d434597bcd2af8bf72b24f1?tpId=82&tqId=37926&rp=1&ru=/ta/sql&qru=/ta/sql&difficulty=&judgeStatus=&tags=/question-ranking思路参考https://blog.nowcoder.net/n/caaa953ea61049fdab7cd6a303a6原创 2022-02-16 12:13:38 · 192 阅读 · 2 评论 -
row_number, rank(), dense_rank()的区别及具体用法示例(转自知乎)
链接:作者青墓先上结论,三者的区别如下:rank()排序相同时会重复,总数不变,即会出现1、1、3这样的排序结果;dense_rank()排序相同时会重复,总数会减少,即会出现1、1、2这样的排序结果;row_number()排序相同时不会重复,会根据顺序排序。具体实例create table rownumber( id varchar(10) not null, name varchar(10) null, age varchar(10) null转载 2021-09-10 17:04:39 · 1186 阅读 · 0 评论 -
SQL部门工资前三高的所有员工
LeetCode原题https://leetcode-cn.com/problems/department-top-three-salaries/初始sqlDROP TABLE IF EXISTS `employee`;CREATE TABLE `employee` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `salary` decimal(10,2) DEFAULT NULL, `deptId` i原创 2021-12-17 14:55:28 · 2937 阅读 · 0 评论 -
SQL牛客的课程订单分析(七)
原题链接需求查询在2025-10-15以后,同一个用户下单2个以及2个以上状态为购买成功的C++课程或Java课程或Python课程的来源信息,第一列是显示的是客户端名字,如果是拼团订单则显示GroupBuy,第二列显示这个客户端(或者是拼团订单)有多少订单,最后结果按照第一列(source)升序排序,如下步骤一:根据条件需要找出来源信息,找出满足条件的user_idselect user_idfrom order_infowhere status = 'completed'原创 2021-12-08 23:27:54 · 1432 阅读 · 0 评论 -
SQL同时在线问题
原链接(我抄的)https://kpretty.tech/archives/sql4需求:求直播同时在线人数的最大值原数据select * from online_problem;| online_problem.id | online_problem.stt | online_problem.edt |+--------------------+----------------------+----------------------+| 1001 |原创 2021-11-29 22:50:11 · 610 阅读 · 0 评论 -
SQL求成功订单的第一天第二天和交易成功次数
牛客原题拆解:t1的结果select user_id, date, rank() over(partition by user_id order by date) date_rk, count(1) over(partition by user_id) cnt from order_info where date>'2025-10-15' and product_name in ('C++','Java','Pytho原创 2021-11-10 15:32:45 · 735 阅读 · 0 评论 -
SQL求处于中位数上的成绩
数据drop table if exists grade;CREATE TABLE grade(`id` int(4) NOT NULL,`job` varchar(32) NOT NULL,`score` int(10) NOT NULL,PRIMARY KEY (`id`));INSERT INTO grade VALUES(1,'C++',11001),(2,'C++',10000),(3,'C++',9000),(4,'Java',12000),(5,'Java',130原创 2021-11-01 11:24:24 · 267 阅读 · 0 评论 -
SQL求超过该科平均分的人
牛客原题表和数据解法一:(看到这个题解使我想把这个题记录下来)解法二:直接硬刚连接原题表和数据drop table if exists grade;CREATE TABLE grade(`id` int(4) NOT NULL,`job` varchar(32) NOT NULL,`score` int(10) NOT NULL,PRIMARY KEY (`id`));INSERT INTO grade VALUES(1,'C++',11001),(2,'C++',10000),(原创 2021-10-28 15:30:10 · 318 阅读 · 0 评论 -
SQL求截至到某个时间用户的刷题数量
牛客原题数据使用窗口函数进行组内相加连接user表得到名字链接数据CREATE TABLE `passing_number` (`id` int(4) NOT NULL,`user_id` int(4) NOT NULL,`number` int(4) NOT NULL,`date` date NOT NULL,PRIMARY KEY (`id`));CREATE TABLE `user` (`id` int(4) NOT NULL,`name` varchar(32) NOT NUL原创 2021-10-28 14:48:14 · 629 阅读 · 0 评论 -
SQL统计每个日期新用户的次日留存率
这里写目录标题测试数据第一步第二步第三步完整代码原题与参考测试数据drop table if exists login;CREATE TABLE `login` (`user_id` int(4) NOT NULL,`date` date NOT NULL);INSERT INTO login VALUES(2,'2020-10-12'),(2,'2020-10-12'),(3,'2020-10-12'),(1,'2020-10-12'),(2,'2020-10-13'),(1,原创 2021-10-27 16:10:43 · 1025 阅读 · 0 评论 -
SQL求每个日期登录新增用户个数
测试数据drop table if exists login;CREATE TABLE `login` (`user_id` int(4) NOT NULL,`date` date NOT NULL);INSERT INTO login VALUES(2,'2020-10-12'),(2,'2020-10-12'),(3,'2020-10-12'),(1,'2020-10-12'),(2,'2020-10-13'),(1,'2020-10-13'),(3,'2020-10-14'原创 2021-10-26 14:37:54 · 904 阅读 · 0 评论 -
Mysql的SUM函数配合窗口
牛客的sql练习题https://www.nowcoder.com/practice/58824cd644ea47d7b2b670c506a159a6?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=1需求:按照salary的累计和running_total,其中running_total为前N个当前( to_date = ‘9999-01-01’)员工的salary累计和,其他以此类推。建表语句drop原创 2021-10-12 20:07:46 · 430 阅读 · 0 评论 -
窗口函数处理SQL连续几天登录问题(两种思路)
需求:有一张用户登录表,字段有id(用户id),time(用户登录的时间);计算连续登录天数超过2天的用户。创表语句create table continous( id INT , time DATETIME );INSERT into continous VALUES(201,'2017-1-1');INSERT into continous VALUES(201,'2017-1-2');INSERT into continous VALUES(201,'2017-1-5'原创 2021-09-16 09:27:07 · 7667 阅读 · 4 评论