# 纵坐标相同或者横坐标的两个点是不可能成为矩形的
# 使用inner join连接两个表的时候 考虑需不需要去重,如何去重也是很重要的(会有重复的两条数据,只是顺序不一样)
SELECT a.id p1,b.id p2,abs(a.x_value-b.x_value)*abs(a.y_value-b.y_value) area
FROM Points a
INNER JOIN Points b
ON a.idb.x_value AND a.y_value <> b.y_value
ORDER BY area desc,p1 asc,p2 asc;
1.3 运行截图
2 连续出现的数字
2.1 题目内容
2.1.1 基本题目信息
2.1.2 示例输入输出
2.2 示例sql语句
# 注意是连续三个数字
SELECT distinct L1.Num ConsecutiveNums
FROM Logs L1
INNER JOIN Logs L2
ON L1.Num=L2.Num AND L2.id-L1.id=1
INNER JOIN Logs L3
ON L2.Num=L3.Num AND L3.id-L2.id=1
2.3 运行截图
3 找出每所学校的最低分数要求
3.1 题目内容
3.1.1 基本题目信息
3.1.2 示例输入输出
3.2 示例sql语句
# 多表连接的条件不一定是等号,有可能是条件或者判断
SELECT t.school_id,IFNULL(t.score,-1) score
FROM
(SELECT row_number() over(partition by s.school_id ORDER BY e.student_count desc,e.score asc) rk,s.school_id,e.scoreFROM Schools sLEFT JOIN Exam eON s.capacity>=e.student_count
)t
WHERE t.rk=1