- 博客(22)
- 收藏
- 关注
原创 601. 体育馆的人流量
601. 体育馆的人流量 这题的思路参考评论区,很精奇的思想,主要分为三种情况考虑进来,以a的id最小、b的id最小、c的id最小这三种进行检索查询,其中由于这三种情况的组合可能出现重复,所以需要distinct去重,主题采用笛卡尔积的形式进行关联。 题解: SELECT distinct a.* FROM Stadium a,Stadium b,Stadium c WHERE a.people >= 100 and b.people >= 100 and c.people >=
2021-05-27 10:38:12
193
原创 596. 超过5名学生的课
超过5名学生的课 思路:注意HAVING关键字,HAVING 配合 GROUP BY 使用,对分组后的数据进行限制,可以使用聚合函数。 SELECT class FROM courses GROUP BY class HAVING COUNT(DISTINCT student ) >= 5
2021-04-06 15:45:19
163
原创 595. 大的国家
大的国家 代码实现1: SELECT World.name,World.population,World.area FROM World WHERE World.area > '3000000' OR World.population > '25000000' 代码实现2: SELECT name,population,area FROM World WHERE area > '3000000' UNION SELECT name,population,area FROM W.
2021-04-06 15:32:58
123
原创 262. 行程和用户
行程和用户 思路:本题主要是需要注意几个函数的运用,1、ROUND()是四舍五入的函数,前面的参数是具体的数值,后面的是保存位数。2、SUM()是求和的函数,本题运用IF()进行判断。首先需要根据时间进行分组,然后需要注意条件以时间为期限,为了得到一张整体有所关联的表,需要根据对应的关联条件进行连接,采用内连接的形式得到一张总表。查询中根据相关函数进行查询得到。 具体代码: SELECT t. Request_at AS `Day`, ROUND( SUM( .
2021-04-06 14:57:54
155
原创 197. 上升的温度
上升的温度 思路:对于此题需要用到MYSQL中DATEDIFF()的函数,此函数可以计算出两个日期间的天数。 题解: SELECT w1.id FROM Weather w1 LEFT JOIN Weather w2 ON DATEDIFF(w1.recordDate,w2.recordDate) = 1 WHERE w1.temperature > w2.temperature ...
2021-04-06 13:57:56
95
原创 196. 删除重复的电子邮箱
删除重复的电子邮箱 思路:需要根据查询区分删除比较大的重复邮箱的id。第一种可以采用内连接的形式来作比较。后来突发奇想的觉得可以使用关联查询的形式。 实现一:内连接 DELETE p1 FROM Person p1,Person p2 WHERE p1.Email = p2.Email AND p1.Id > p2.Id 实现二:关联查询 代码实现: DELETE p1 FROM Person p1 LEFT JOIN Person p2 ON p1.Email = p2.Email W.
2021-03-31 12:26:23
404
原创 187. 重复的DNA序列
重复的DNA序列 Sql中突然出现了一题Java,应该很鬼畜吧,就给他做了。开始做本题目的时候没什么思路,后来看评论区才了解,感谢评论区的大佬,发此篇博客只是记录学习成果。 思路:由于Set中不存放重复的元素,所以可以使用Set。通过判断HashSet的存在元素来进行区分。本题的题意是解决任意长度相同的问题,本题中以定长10来解决。具体题目如下。 测试代码如下: package com.leecode.Study; import java.util.ArrayList; import jav.
2021-03-31 09:24:30
136
原创 185. 部门工资前三高的所有员工
部门工资前三高的所有员工 思路:审题,注意不是按照部门进行区分而是求得排名前三的工资情况 SELECT d.Name AS Department,e1.Name AS Employee,e1.Salary AS Salary FROM Employee e1 JOIN Department d ON e1.DepartmentId = d.Id WHERE 3 > ( SELECT COUNT(DISTINCT e2.Salary ) FROM Employee e2 WHERE .
2021-03-30 17:14:01
111
原创 184. 部门工资最高的员工
部门工资最高的员工 思路使用JOIN 将两表数据关联,再根据条件查询得到按部门分类,且工资最高的部门。 Select d.Name Department ,e.Name Employee ,e.Salary Salary FROM Employee e JOIN Department d ON e.DepartmentId = d.Id WHERE (e.Salary,d.Id) IN( SELECT Max(Salary),a.DepartmentId FROM Employee a G.
2021-03-30 17:11:26
102
原创 183. 从不订购的客户
从不订购的客户 思路:得了解NOT IN这题就好做了 SELECT `NAME` AS Customers FROM Customers WHERE Id NOT IN( SELECT CustomerId FROM Orders )
2021-03-30 14:38:02
98
原创 182. 查找重复的电子邮箱
查找重复的电子邮箱 思路:我首先想到的是采用自连接的形式,通过查找邮箱相同,需要注意额外的需要排除相同id出现的情况。第二种采用Group By的形式。相比较内连接的形式耗时更少 方法一:内连接的形式 SELECT DISTINCT p1.Email FROM Person p1, Person p2 WHERE p1.Email = p2.Email AND p1.Id != p2.Id 方法二:GROUP BY SELECT Email FROM (SELECT Email,count(.
2021-03-30 14:02:20
421
原创 181. 超过经理收入的员工
超过经理收入的员工 思路:起初想法比较复杂,想着需要取出员工中经理的ManageId去查询,后来发现复杂化了,直接可以通过获取两次信息进行比对得到。 (1)实现1 此处a表示的是员工、b表示的是经理 代码实现: SELECT a.name AS Employee FROM Employee a,Employee b WHERE a.ManagerId = b.Id AND a.Salary > b.Salary (2)实现2 使用JOIN SELECT a.name AS Employ.
2021-03-30 13:39:12
104
原创 180. 连续出现的数字
连续出现的数字 思路:主要是对连续数字的统计,首先要得到连续的num出现三次且值相等,注意是连续,然后查询的结果需要去重(连续出现说明id也是连续的) 实现代码: SELECT DISTINCT L1.num AS ConsecutiveNums FROM `Logs` l1,`Logs` l2,`Logs` l3 WHERE l1.Id = L2.Id - 1 AND l2.Id = l3.Id -1 AND l1.num = l2.num AND l2.num = l3.num ...
2021-03-30 11:05:45
110
原创 178. 分数排名
分数排名 思路:此题需要按照两步进行,首先查询出降序得到的分数,其次应该根据统计得到大于或者等于当前数的总数 1、先通过查询得到降序排列的分数 select Score from Scores order by Score desc 2、再通过计算排名 X:为当前传入的分数 select count(distinct b.Score) from Scores b where b.Score >= X 实现代码: select a.Score,(select count(distinct .
2021-03-29 17:27:00
123
原创 177. 第N高的薪水
第N高的薪水 通过mysql中的函数的形式运行,指定第几高的形式进行查询 需要注意的几个点: 1、薪水一样的问题需要避免,可以使用group by来避免重复 2、需要定义从第几个开始,因为这边采用先排序后分页,所以如果为第n大的值,需要定义Set n := n-1 ...
2021-03-29 17:02:12
101
原创 176. 第二高的薪水
第二高的薪水 思路:注意查询结果没有则为null 第一次尝试: 考虑欠缺,重复的情况未考虑,排序默认应该是升序的,而且需要额外考虑一种情况,如果表中只有一个数据将被判定错误,所以可以使用嵌套查询的形式。 成功界面: select(select distinct Salary from Employee e order by Salary desc limit 1,1) AS SecondHighestSalary ...
2021-03-29 16:42:46
167
1
原创 175. 组合两个表-力扣练习
组合两个表 思路:本文中提出无论如何都需要满足以下字段,所以采用关联查询的形式包含该字段,只不过结果为null 代码如下: select p.FirstName,p.LastName,a.City,a.State from Person p left join Address a on p.PersonId = a.PersonId; ...
2021-03-29 16:18:45
98
原创 分布式-SpringCloud-Eureka注册中心-SpringBoot
分布式-SpringCloud-Eureka注册中心-SpringBoot 前言:随着互联网的发展,网站规模不断扩大,所以单体服务无法满足日常所需,可以采用将各个任务模块分到不同的服务器中,但是例如用户模块需要使用订单模块,位于不同服务器的就涉及到RPC,所以就需要注册中心,将两个模块都注册在注册中心中,用户模块则可以在注册中心中找到想要的。下面就涉及到用户买票需要调用到卖票的模块的一些服务。 SpringCloud-Eureka注册中心-SpringBoot分布式-SpringCloud-Eureka
2020-11-23 10:38:10
233
原创 Spring-Boot-原理-自定义starter
Spring-Boot-原理-自定义starter 前言:spring-boot最强大的地方在于将所有的场景均抽取成了starter,也就是场景启动器,通过引入场景启动器就能使用其功能,即使是这样也不能完全保证后期的需求,所以自定义的场景启动器就很重要。而且当自己编辑好starter的时候,其他人也可以通过导入依赖的方式直接使用。 创建空白项目,在此项目中分别加入使用maven从创建项目和使用Spring Initializr创建项目的两个module。此处以maven创建的模块com.atguigu.s
2020-11-16 10:18:19
140
原创 2020-11-15
SpringBoot整合Mybatis 首先创建项目,这边使用的springBoot的版本为2.2.11,因为使用的是idea2020版,所以在初始化界面选上springWeb、jdbc、mybatis、还有mysql;但需注意的是我这边装的mysql的版本为5.5,所以需要在依赖中设置版本,以及jdbc、mybatis所适配的版本,由于项目中缺少日志配置文件,系统会报错所以将其导入。 pop.xml文件对应如下: <?xml version="1.0" encoding="UTF-8"?>
2020-11-15 18:26:23
109
原创 SpringBoot数据访问-整合Druid,配置数据源监控
SpringBoot数据访问-整合Druid,配置数据源监控 在maven中导入druid 在配置文件中修改数据源信息,将默认的数据源改为Druid。我这边springBoot的版本是2.4.0需要注意的是在配置文件中指定 initialization-mode: always,因为我的mysql是5.5的版本,与springBoot默认加载的版本不符合所以需要在maven中指定版本具体如下 <dependency> <groupId>org.spri
2020-11-15 13:48:21
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅