mysql
jialun0116
浙江工业大学
展开
-
Leetcode 超全数据库SQL练习汇总
175.组合两个表176.第二高的薪水177.第N高的薪水178.分数排名@1 80.连续出现的数字181.超过经理收入的员工182.查找重复的电子邮箱183.从不订购的客户184.部门工资最高的员工185.部门门工资前三高的所有员工196.删除重复的电子邮箱197..上升的温度@262.行程和用户595.大的国家596.超过5名学生的课@601.体育馆的人流量620.有趣的电影626.换座位627.变更性别原创 2021-06-09 20:06:36 · 1498 阅读 · 0 评论 -
Leetcode数据库刷题 180. 连续出现的数字
Leetcode 数据库刷题题目解法题目题目链接SQL架构表:Logs+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+id 是这个表的主键。 编写一个 SQL 查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按原创 2021-06-08 23:45:43 · 177 阅读 · 0 评论 -
explain分析SQL执行计划
explain分析SQL执行计划慢查询配置慢查询日志具体参数解析优化案例 LIMIT分页解决方法一 :构造覆盖索引解决方法二:优化offset解决方法三:延迟关联优化建议慢查询配置-- 查看是否开启慢查询show variables like '%slow_query_log%';+---------------------+-------------------------------------+| Variable_name | Value原创 2021-05-24 21:04:55 · 435 阅读 · 0 评论 -
天池龙珠计划SQL训练营 Task6
综合练习 - 10道经典SQL本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为https://tianchi.aliyun.com/specials/promotion/aicampsql练习1 将三张表中的TICKER_SYMBOL为600383和600048的 信息合并在⼀起。SELECT MarketData.*,OperatingData.INDIC_NAME_EN, OperatingData.VALUE,IncomeStatement.N_INCOME, IncomeSta原创 2021-04-20 13:22:49 · 344 阅读 · 1 评论 -
天池龙珠计划SQL 知识点总结与习题解析
1.1 DBMS的种类1.2 SQL语句类型1.3 drop、delete、truncate区别2.1 函数2.2 执行顺序2.3 各种函数3. 1视图3.2 视图与表的区别3.3 视图存在的意义4.1 表的连接4.2 连结 JOIN5.1 窗口函数1-5 习题全解原创 2021-04-16 13:37:16 · 244 阅读 · 0 评论 -
SQL中的锁(行锁、页锁、表锁、共享锁、排它锁、乐观锁、悲观锁)
SQL中的锁按照锁颗粒对锁进行划分行锁页锁表锁从数据库管理的角度对锁进行划分共享锁排它锁从程序员的角度对锁进行划分乐观锁 (Optimistic Locking)悲观锁(Pessimistic Locking)适用场景避免死锁的发生锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁、页锁和表锁。按照锁颗粒对锁进行划分行锁就是按照行的粒度对数据进行锁定。锁定力度小,发生锁冲突概率低,可以实现的并发度高,但是对于锁的开销比较大,加锁会比较慢,容易出现死锁情况。页锁就是原创 2021-04-13 15:26:41 · 6713 阅读 · 0 评论 -
SQL88 牛客网练习 巧求中位数
SQL88 牛客网练习TM小哥和FH小妹在牛客大学若干年后成立了牛客SQL班,班的每个人的综合成绩用A,B,C,D,E表示,90分以上都是A,80 90分都是B,60 70分为C,50 60为D,E为50分以下因为每个名次最多1个人,比如有2个A,那么必定有1个A是第1名,有1个A是第2名(综合成绩同分也会按照某一门的成绩分先后)。每次SQL考试完之后,老师会将班级成绩表展示给同学看。现在有班级成绩表(class_grade)如下:第1行表示成绩为A的学生有2个…最后1行表示成绩为D的学生有原创 2021-04-08 14:50:14 · 417 阅读 · 0 评论 -
MySQL 牛客的课程订单分析
79、81、83重点看77. 请你写出一个sql语句查询在2025-10-15以后状态为购买成功的C++课程或者Java课程或者Python的订单,并且按照order_info的id升序排序:select * from order_infowhere datediff(date,"2025-10-15")>0 and status = "completed" and (product_name = 'C++' or product_name = 'Java' or product原创 2021-03-16 23:20:56 · 630 阅读 · 0 评论 -
Mysql刷题笔记 RECURSIVE CTE 即根据父ID(PARENTID)来逐级显示产品名和层级序号
Mysql练习-- 3.15 即根据父ID(PARENTID)来逐级显示产品名和层级序号CREATE TABLE T0315( ID INT, PRODUCTNAME VARCHAR(64), PARENTID INT); INSERT INTO T0315 VALUES ( 1,'汽车',NULL);INSERT INTO T0315 VALUES ( 2,'车身',1);INSERT INTO T0315 VALUES ( 3,'发动机',1);INSERT IN原创 2021-03-15 13:33:16 · 1061 阅读 · 0 评论 -
Mysql 计算新登陆用户次日的留存率、每个日期登陆的新用户数、 每个日期新用户的次日留存率、用户连续登陆天数、连续登录5天的用户
计算新登陆用户次日的留存率、每个日期登陆的新用户数、 每个日期新用户的次日留存率1. 请你写出一个sql语句查询新登录用户次日成功的留存率,即第1天登陆之后,第2天再次登陆的概率,保存小数点后面3位(3位之后的四舍五入)2. 请你写出一个sql语句查询每个日期登录新用户个数,并且查询结果按照日期升序排序,3.请你写出一个sql语句查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序1. 请你写出一个sql语句查询新登录用户次日成功的留存率,即第1天登原创 2021-03-12 14:57:46 · 2136 阅读 · 1 评论 -
Mysql刷题笔记 按工号查找日期相同的记录数>1,且Rectime=Time4
Mysql刷题笔记 按工号查找日期相同的记录数>1,且Rectime=Time4-- 3.9 按工号查找日期(RecDate)相同的记录数>1,且Rectime=Time4CREATE TABLE T0309( workid VARCHAR(20), RecDate DATE, RecTime VARCHAR(20), Time4 VARCHAR(20) );INSERT INTO T0309 VALUES ('161181','2017-05-03','13:01','13:0原创 2021-03-09 15:22:22 · 150 阅读 · 0 评论 -
Mysql刷题笔记 3.4 同一类型的数据A_Type 按照A_NO的顺序 时间依次是变大的,如果时间有异常 ,则为异常的数据
Mysql刷题笔记''' 3.4 挑选出带有选中字样的数据 规则如下: 同一类型的数据A_Type 按照A_NO的顺序 时间依次是变大的,如果时间有异常 ,则为异常的数据 如 id 为2的数据时间应该比id为3的数据小才对,但是比id为3的大则筛选出来,id为6,11都是同一规则,结果如下:'''CREATE TABLE T0304( ID INT NULL, A_Type VARCHAR(50) NULL, A_NO INT NULL, A_Time DAT原创 2021-03-04 15:16:24 · 119 阅读 · 2 评论 -
Mysql刷题笔记 3.2 同一类A的B列进行求和,如果C列的两个值不同就取1,相同就取同类别的值
-- 3.2 想得到如下结果,即同一类A的B列进行求和,如果C列的两个值不同就取1,相同就取同类别的值。CREATE TABLE T0302 ( A VARCHAR(10), B INT, C VARCHAR(10));INSERT INTO T0302 VALUES('a',1,'X');INSERT INTO T0302 VALUES('a',2,'Y');INSERT INTO T0302 VALUES('b',3,'X');INSERT INTO T0302 VA原创 2021-03-02 15:01:06 · 578 阅读 · 1 评论 -
Mysql刷题笔记 03.01 lead函数 按单号+工序排序,相邻行部门相同的情况,取工序号最大的那一行记录?
Mysql刷题笔记 03.01 希望按单号+工序排序,相邻行部门相同的情况,取工序号最大的那一行记录?-- 03.01 希望按单号+工序排序,相邻行部门相同的情况,取工序号最大的那一行记录?CREATE TABLE T0301( 单号 VARCHAR(20) NOT NULL, 工序 VARCHAR(10) NOT NULL, 部门编号 INT NOT NULL, 完成数量 INT NOT NULL);INSERT INTO T0301 VALUES('2011090065'原创 2021-03-01 14:58:52 · 187 阅读 · 0 评论 -
Mysql刷题笔记 02.24 统计每组连续时间内的连续完成数,有某一时间的完成数为0就重新计算
Mysql刷题笔记 02.24 统计每组连续时间内的连续完成数,有某一时间的完成数为0就重新计算0224 需要统计每组(NAME)连续时间(TIME)内的连续完成数(COMPLETE),其中有某一时间的完成数为0就重新计算。CREATE TABLE T0224 ( TIME INT, NAME VARCHAR(5), COMPLETE VARCHAR(5)); INSERT INTO T0224 VALUES(1,'1','0');INSERT INTO T0224 VALUES原创 2021-02-24 17:21:59 · 224 阅读 · 0 评论 -
Mysql刷题笔记 2.20 求解出两个变量直接每小时的时间分布 TIMESTAMPDIFF时间相减 DATE_ADD 时间增加
Mysql刷题笔记-- 2.20定义如下两个变量SET @date_start = '2021-02-20 01:00:00'; SET @date_end = '2021-02-20 10:00:00';希望求解出两个变量直接每小时的时间分布,预计结果如下:+---------------------+| WORK_DATE |+---------------------+| 2021-02-20 01:00:00 || 2021-02-20 02:00:原创 2021-02-20 11:15:35 · 149 阅读 · 0 评论 -
Mysql刷题笔记 2.1 根据时间判断是否是有效、重复、无效打卡
Mysql刷题笔记知识点:从datetime得到time 可以直接使用time也可以使用 DATE_FORMAT(CheckTime,’%h:%i’)--每天上午8:00-9:00,下午16:30-18:00这两个时间段内的最早的一条记录视为“有效”,-- 在这两个时间段内其它打卡数据显示“重复”,否则视为“无效”。预计结果如下:Create table T0201 ( UserId int, CheckIn DATETIME);Insert into T0201 VALUES (原创 2021-02-01 15:31:38 · 493 阅读 · 0 评论 -
Mysql刷题笔记 1.25 根据TransType取每道OprSeq的开始与结束时间
-- 1.25 根据TransType取每道OprSeq的开始与结束时间,其中,开始-换班是一组,开始-结束是一组Create table T0125( TransType varchar(22), OprSeq int, OpCode varchar(24), TransTime varchar(34));INSERT INTO T0125 VALUES('开始',10,'NF21','2019-11-30 14:06');INSERT INTO T0125 VALUES('换班',1原创 2021-01-25 11:16:43 · 168 阅读 · 0 评论 -
Mysql刷题笔记 1.21将每个月之前的月份总量进行累加 注意中文排序
Mysql刷题笔记-- 1.21 将每个月之前的月份总量进行累加CREATE TABLE T0121( month varchar(23), total int);INSERT INTO T0121 VALUES ('一月份',10);INSERT INTO T0121 VALUES ('二月份',20);INSERT INTO T0121 VALUES ('三月份',30);INSERT INTO T0121 VALUES ('四月份',50);INSERT INTO T0121 VA原创 2021-01-21 13:40:03 · 519 阅读 · 0 评论 -
Mysql刷题笔记 1.20 对相同月份的数据均分Amount
Mysql刷题笔记CREATE TABLE T0120( ID int, NAME varchar(22), MON int, STATE varchar(21), AMOUNT int);INSERT INTO T0120 VALUES(1,'张三',201901,'A',9000);INSERT INTO T0120 VALUES(2,'张三',201901,'B',9000);INSERT INTO T0120 VALUES(3,'张三',201901,'E',9000);原创 2021-01-20 14:19:48 · 209 阅读 · 1 评论 -
Mysql 刷题笔记 1.19 将每个客户按月生成汇总报表
Mysql 刷题笔记-- 1.19将每个客户按月生成汇总报表,用SQL该如何求解?Create table T0119C( 客户编号 varchar(24), 客户抬头 varchar(23));Insert INTO T0119C VALUES('0001','A公司');Insert INTO T0119C VALUES('0002','B公司');Insert INTO T0119C VALUES('0003','C公司');Create table T0119X( 客户编原创 2021-01-19 13:49:30 · 319 阅读 · 0 评论 -
Mysql 刷题笔记 1.18 将每个Type按Num进行均等分,结果如下:
Mysql 刷题笔记-- 1.18 希望将每个Type按Num进行均等分,结果如下:CREATE TABLE T0118( Type VARCHAR(10), Num INT );INSERT INTO T0118 VALUES('A',2);INSERT INTO T0118 VALUES('B',3);INSERT INTO T0118 VALUES('C',2);T0118+------+------+| Type | Num |+------+------+| A原创 2021-01-18 11:04:19 · 320 阅读 · 0 评论 -
Mysql刷题笔记 1.15 查找每种商品最近一天的日平均单价
Mysql刷题笔记 -- 1.15 查找每种商品最近一天的日平均单价Create table T0115( 商品 nvarchar(22), 日期 Date, 单价 int, 数量 int);Insert INTO T0115 VALUES ('桌子','2016-01-01',100,1);Insert INTO T0115 VALUES ('椅子','2016-01-01',50,4);Insert INTO T0115 VALUES ('桌子','2016-01-02',100,原创 2021-01-15 12:00:31 · 359 阅读 · 0 评论 -
Mysql刷题笔记 1.14 通过SQL语句将连续的数据组合起来
Mysql刷题笔记-- 1.14 通过SQL语句将连续的数据组合起来CREATE TABLE T0114( X INT, L VARCHAR(10)) ; INSERT INTO T0114 VALUES(1, 'A');INSERT INTO T0114 VALUES(2, 'A');INSERT INTO T0114 VALUES(3, 'A');INSERT INTO T0114 VALUES(4, 'A');INSERT INTO T0114 VALUES(5, '原创 2021-01-14 18:22:53 · 222 阅读 · 0 评论 -
Mysql刷题笔记 1.12 求相邻日期的金额之差 并 统计连续增长天数 重点
Mysql刷题笔记-- 1.12 同一个代码,在不同日期有不同的金额,统计连续增长天数和连续负增长天数CREATE TABLE T0112( 日期 DATETIME NULL, 代码 NVARCHAR(999) NULL, 金额 DECIMAL(18, 2) NULL, 金额差异值 DECIMAL(19, 2) NULL);INSERT INTO T0112 VALUES('2020-07-01','A',2,0);INSERT INTO T0112 VALUES('2020-07-06原创 2021-01-12 15:57:25 · 435 阅读 · 0 评论 -
Mysql刷题笔记 1.11 将每列数据中存在奇数的数据统计出来
Mysql刷题笔记-- 0111 将每列数据中存在奇数的数据统计出来Create table T0111( IP int, NUM1 int, NUM2 int, NUM3 int);Insert INTO T0111 VALUES (1,3333,4442,221);Insert INTO T0111 VALUES (2,65,24,96);T0111+------+------+------+------+| IP | NUM1 | NUM2 | NUM3 |+-----原创 2021-01-11 09:22:58 · 190 阅读 · 0 评论 -
Mysql刷题笔记 0108 要求查询出所有A不在B里的行(即B不包含A)
Mysql刷题笔记-- 0108 要求查询出所有A不在B里的行(即B不包含A)-- 其中A列的类型为VARCHAR(10),B列的类型为VARCHAR(20)CREATE TABLE T0108( A VARCHAR(10), B VARCHAR(20));INSERT INTO T0108 VALUES ('1','1');INSERT INTO T0108 VALUES ('1','1,2');INSERT INTO T0108 VALUES ('1','1,2,3');INS原创 2021-01-08 10:22:51 · 369 阅读 · 0 评论 -
Mysql刷题笔记 0107 求出谁拥有最多的好友和他拥有的好友数目
Mysql刷题笔记-- 0107 求出谁拥有最多的好友和他拥有的好友数目CREATE TABLE T0107 ( requester_id INT, accepter_id INT, accept_date DATE);INSERT INTO T0107 VALUES (1,2,'2016-6-3');INSERT INTO T0107 VALUES (1,3,'2016-6-8');INSERT INTO T0107 VALUES (2,3,'2016-6-8');INSERT原创 2021-01-07 10:08:42 · 325 阅读 · 0 评论 -
Mysql刷题笔记 0106 ID为自增,查询出第一条开始到第几条记录 的累计金额刚好超过100
Mysql刷题笔记-- 0106 ID为自增,查询出第一条开始到第几条记录 的累计金额刚好超过100?CREATE TABLE T0106 ( ID INT, 金额 INT);INSERT INTO T0106 VALUES (2,30);INSERT INTO T0106 VALUES (3,30);INSERT INTO T0106 VALUES (4,30);INSERT INTO T0106 VALUES (11,9);INSERT INTO T0106 VALUES (12原创 2021-01-06 15:13:28 · 405 阅读 · 0 评论 -
Mysql 刷题笔记 01.05 用CTE递归查询树状数据
Mysql刷题笔记-- 01.05 递归查询树状数据CREATE TABLE T0105( ID INT, NAME VARCHAR(10), ParentId INT);INSERT INTO T0105 VALUES (1,'北京市',0);INSERT INTO T0105 VALUES (2,'广东省',0);INSERT INTO T0105 VALUES (3,'昌平区',1);INSERT INTO T0105 VALUES (4,'海淀区',1);INSERT IN原创 2021-01-05 10:55:11 · 393 阅读 · 0 评论 -
Mysql 刷题笔记 0104 求出NAME中每组累加/每组总数的比例大于0.6的ID和NAME
Mysql 刷题笔记 -- 0104 求出NAME中每组累加/每组总数的比例大于0.6的ID和NAMECREATE TABLE T0104( ID INT, NAME VARCHAR(10), NUM INT);INSERT INTO T0104 VALUES (1,'A',1);INSERT INTO T0104 VALUES (2,'A',2);INSERT INTO T0104 VALUES (3,'A',6);INSERT INTO T0104 VALUES (4,'A'原创 2021-01-04 10:35:14 · 168 阅读 · 0 评论 -
Mysql刷题笔记 12.31 如果某列的字段在该日期为空值,查询时结果显示为之前最接近日期的非空值
Mysql刷题笔记-- 12.31 如果某列的字段在该日期为空值,查询时结果显示为之前最接近日期的非空值。 CREATE TABLE T1231( LDate DATE NOT NULL, Value1 INT NULL, Value2 INT NULL);INSERT INTO T1231 VALUES('2020-11-25', 500 ,200);INSERT INTO T1231 VALUES('2020-11-24', Null, 200);INSERT INTO T12原创 2021-01-04 10:05:56 · 484 阅读 · 1 评论 -
Mysql刷题笔记 12.30 根据对应id构建信息表
Mysql刷题笔记-- 12.30 根据对应id构建信息表CREATE TABLE T1230 ( ID INT, Cname VARCHAR(20), ParentID INT, OrgID INT, Type INT)INSERT INTO T1230 VALUES (1,'公司总部',0,0,1);INSERT INTO T1230 VALUES (2,'人事部',1,1,2);INSERT INTO T1230 VALUES (3,'张三',2,1,3);INS原创 2020-12-30 13:34:16 · 132 阅读 · 0 评论 -
Mysql刷题笔记 12.29 查询每个玩家每天累计玩的游戏数量有多少?
Mysql练习-- 12.29 查询每个玩家每天累计玩的游戏数量有多少?CREATE TABLE T1229( player_id INT, device_id INT, event_date DATE, games_player INT)INSERT INTO T1229 VALUES(1,2,"2016/03/01",5)INSERT INTO T1229 VALUES(1,2,"2016/05/02",6);INSERT INTO T1229 VALUES(1,3,"2017原创 2020-12-29 14:01:25 · 841 阅读 · 0 评论 -
Mysql刷题笔记 12.28 查询一班各科成绩最高的学生姓名
Mysql练习-- 12.28 查询一班各科成绩最高的学生姓名T1228A+-------+---------+---------+| stuID | classID | stuName |+-------+---------+---------+| 1 | A | zhang || 2 | A | li || 3 | B | wang |+-------+---------+---------+T1228B原创 2020-12-28 10:23:06 · 2469 阅读 · 1 评论 -
Mysql刷题笔记 12.25 递归创建路径
Mysql练习-- 12.25 递归创建路径T1225+------+------+| ID | PID |+------+------+| 1 | 0 || 2 | 1 || 3 | 2 || 4 | 3 |+------+------+结果+------+------+------------+| ID | PID | PATH |+------+------+------------+| 1 |原创 2020-12-25 11:02:31 · 297 阅读 · 0 评论 -
Mysql刷题笔记 12.24 每条记录每次增加30分钟,增加3次
Mysql练习-- 12.24 希望每条记录每次增加30分钟,增加3次T1224+------+---------------------+| ID | EndTime |+------+---------------------+| 1 | 2020-05-26 16:00:00 || 2 | 2020-05-26 17:30:00 |+------+---------------------+结果+------+---------------原创 2020-12-25 09:04:24 · 176 阅读 · 0 评论 -
Mysql刷题笔记 12.23 根据客单类别表统计出每个省份每个城市的低客单数和高客单数
Mysql练习-- 12.23 根据客单类别表统计出每个省份每个城市的低客单数和高客单数,-- 如果某城市无低客单记录或高客单记录,其统计数为0T1223+--------+--------+--------+-----------+| 姓名 | 省份 | 城市 | 类别 |+--------+--------+--------+-----------+| 张三 | 广东 | 广州 | 低客单 || 李四 | 广东 | 广州原创 2020-12-23 10:29:05 · 408 阅读 · 0 评论 -
Mysql刷题笔记 12.22 求每个用户相邻两次浏览时间之差小于三分钟的次数 两种方法
Mysql练习-- 12.22 求每个用户相邻两次浏览时间之差小于三分钟的次数T1221+---------+---------------------+| user_id | times |+---------+---------------------+| 1 | 2020-12-07 21:13:07 || 1 | 2020-12-07 21:15:26 || 1 | 2020-12-07 21:17:44 ||原创 2020-12-22 13:13:03 · 1124 阅读 · 1 评论 -
Mysql刷题笔记 12.21 删除重复电话号码,重复的电话号码保留id最小的那个 两种方法
Mysql练习-- 12.21 删除重复电话号码,重复的电话号码保留id最小的那个 /*T1221+------+-------------+| ID | Phone |+------+-------------+| 1 | 13512345678 || 2 | 13512345678 || 3 | 13012345678 |+------+-------------+T1221+------+-------------+| ID | Phon原创 2020-12-21 12:27:14 · 292 阅读 · 0 评论