SQL:查找填充区域

发布于 2024-12-09 07:02:13 字数 878 浏览 0 评论 0原文

我有这个表:

CREATE TABLE coordinates (
  x INTEGER NOT NULL,
  y INTEGER NOT NULL,
  color VARCHAR(1) NOT NULL,
  PRIMARY KEY(x,y)
)

这里有一些示例数据:

INSERT INTO coordinates
  (x, y, color)
VALUES
  (0, 4, 'g'),
  (1, 0, 'g'),
  (1, 1, 'g'),
  (1, 2, 'g'),
  (1, 3, 'g'),
  (0, 4, 'g'),
  (1, 0, 'g'),
  (1, 1, 'g'),
  (1, 2, 'g'),
  (1, 3, 'g'),
  (1, 4, 'g'),
  (2, 0, 'b'),
  (2, 1, 'g'),
  (2, 2, 'g'),
  (2, 3, 'g'),
  (2, 4, 'g'),
  (4, 0, 'b'),
  (4, 1, 'r'),
  (4, 2, 'r'),
  (4, 3, 'g'),
  (4, 4, 'g'),
  (6, 0, 'r'),
  (6, 1, 'g'),
  (6, 2, 'g'),
  (6, 3, 'r'),
  (6, 4, 'r')
;

我正在尝试编写一个查询来查找所有最大面积的矩形。假设一个矩形由其左下角和右上角定义,并且 1/4 是 r,1/4 是 b,1/4 是 g,1/4 是 y。

所以结果应该是类似这样的:

x1 | y1 | x2 | y2 | area
-------------------------
 0    1    6    9     58
 1    2    4    7     58

I have this table:

CREATE TABLE coordinates (
  x INTEGER NOT NULL,
  y INTEGER NOT NULL,
  color VARCHAR(1) NOT NULL,
  PRIMARY KEY(x,y)
)

Here are some sample data:

INSERT INTO coordinates
  (x, y, color)
VALUES
  (0, 4, 'g'),
  (1, 0, 'g'),
  (1, 1, 'g'),
  (1, 2, 'g'),
  (1, 3, 'g'),
  (0, 4, 'g'),
  (1, 0, 'g'),
  (1, 1, 'g'),
  (1, 2, 'g'),
  (1, 3, 'g'),
  (1, 4, 'g'),
  (2, 0, 'b'),
  (2, 1, 'g'),
  (2, 2, 'g'),
  (2, 3, 'g'),
  (2, 4, 'g'),
  (4, 0, 'b'),
  (4, 1, 'r'),
  (4, 2, 'r'),
  (4, 3, 'g'),
  (4, 4, 'g'),
  (6, 0, 'r'),
  (6, 1, 'g'),
  (6, 2, 'g'),
  (6, 3, 'r'),
  (6, 4, 'r')
;

I am trying to write a query that finds all the largest-area rectangles. This is assuming a rectangle is defined by its bottom left and top right, and that 1/4 is r, 1/4 is b, 1/4 is g, 1/4 is y.

So result should be something similarly like this:

x1 | y1 | x2 | y2 | area
-------------------------
 0    1    6    9     58
 1    2    4    7     58

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少跟Wǒ拽 2024-12-16 07:02:13

创建一个计算面积的函数,然后查询该函数以获得最大的面积。

Make a function that calculates the area and then query the function to get the biggest one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文