SQL:查找填充区域

时间:2011-10-11 03:20:56

标签: sql database postgresql geometry

我有这张桌子:

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

1 个答案:

答案 0 :(得分:1)

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