前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「SQL面试题库」 No_112 矩形面积

「SQL面试题库」 No_112 矩形面积

作者头像
不吃西红柿
发布2023-10-16 10:48:02
1430
发布2023-10-16 10:48:02
举报
文章被收录于专栏:信息技术智库

今日真题

题目介绍: 矩形面积 rectangles-area

难度中等

SQL架构

表:

代码语言:javascript
复制
Points
代码语言:javascript
复制
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| x_value       | int     |
| y_value       | int     |
+---------------+---------+
id 是该表主键.
每个点都表示为二维空间 (x_value, y_value).

写一个 SQL 语句, 报告由表中任意两点可以形成的所有可能的矩形.

结果表中的每一行包含三列 (p1, p2, area) 如下:

  • p1p2 是矩形两个对角的 id 且 p1 < p2.
  • 矩形的面积由列 area 表示.

请按照面积大小降序排列,如果面积相同的话, 则按照 p1 和 p2 升序对结果表排序

``` Points 表: +----------+-------------+-------------+ | id | x_value | y_value | +----------+-------------+-------------+ | 1 | 2 | 8 | | 2 | 4 | 7 | | 3 | 2 | 10 | +----------+-------------+-------------+

Result 表: +----------+-------------+-------------+ | p1 | p2 | area | +----------+-------------+-------------+ | 2 | 3 | 6 | | 1 | 2 | 2 | +----------+-------------+-------------+

p1 应该小于 p2 并且面积大于 0. p1 = 1 且 p2 = 2 时, 面积等于 |2-4| * |8-7| = 2. p1 = 2 且 p2 = 3 时, 面积等于 |4-2| * |7-10| = 6. p1 = 1 且 p2 = 3 时, 是不可能为矩形的, 因为面积等于 0. ```

代码语言:javascript
复制
sql
select a.id P1,b.id P2,abs(a.x_value-b.x_value)*abs(a.y_value-b.y_value) as area
from Points a,Points b
where a.id<b.id and a.x_value != b.x_value and a.y_value != b.y_value
order by area desc,P1 ,P2
  • 已经有灵感了?在评论区写下你的思路吧!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日真题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档