LeetCode SQL(一)
本篇博客会不定时更新
组合两个表
SELECT a.FirstName,a.LastName,b.City,b.State from Person a left join Address b USING(PersonID);
SElECT a.FirstName,a.LastName,b.City,b.State from Person a left join Address b on a.PersonID=b.PersonID;
可以使用USING()
这个语法
第二高的薪水
SELECT IFNULL((SELECT DISTINCT Salary FROM Employee order by Salary desc limit 1 offset 1),null) AS SecondHighestSalary
第一个SELECT
后面是没有加括号的,写的时候可以先不用写最外层的SELECT
,先把里面的写好,里面的SELECT
得到的是一个值,IFNULL
函数再对这个值进行判断得出来一个值,但是这个值不能输出到页面上,需要最外面的SELECT
选中
DISTINCT
是放到SELECT
之后的,而且只能放到字段的最前面,是没有括号的
第N高的薪水
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N:= N-1;
RETURN(
SELECT Salary from Employee group by Salary order by Salary DESC limit N,1
);
END
注意函数
的使用,函数
和Go的函数
类似是参数和返回值类型是写到后面
的,GROUP BY
放到ORDER BY
之前
分数排名
select a.Score as Score,
(select count(distinct b.Score) from Scores b where b.Score >= a.Score) as 'rank'
from Scores a
order by a.Score DESC
里面的SELECT
得到的是RANK,这个RANK是通过外部的字段比较得到的,理解上可以从每一个行来理解,SELECT
的是每一行的数据
起别名的时候字段不要忘记加别名.字段
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)