# 纵坐标相同或者横坐标的两个点是不可能成为矩形的# 使用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
INNERJOIN Points b
ON a.id<b.id AND a.x_value<>b.x_value AND a.y_value <> b.y_value
ORDERBY area desc,p1 asc,p2 asc;
1.3 运行截图
2 连续出现的数字
2.1 题目内容
2.1.1 基本题目信息
2.1.2 示例输入输出
2.2 示例sql语句
# 注意是连续三个数字SELECTdistinct L1.Num ConsecutiveNums
FROM Logs L1
INNERJOIN Logs L2
ON L1.Num=L2.Num AND L2.id-L1.id=1INNERJOIN 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(partitionby s.school_id ORDERBY e.student_count desc,e.score asc) rk,s.school_id,e.score
FROM Schools s
LEFTJOIN Exam e
ON s.capacity>=e.student_count
)t
WHERE t.rk=1