按3列的变化分组

时间:2016-03-01 01:31:50

标签: php postgresql

我有一张表格,用于存储图像每个像素的R,G,B。

我想制作一个SELECT,按照这三个列的变化对结果进行分组。

我希望例如该记录包含: 55,100,60 与包含以下内容的记录分组: 50,105,65

在这种情况下,更改被定义为5或更少。

我的目标是在7700分析像素后返回重复颜色的变化。

1 个答案:

答案 0 :(得分:1)

这取决于你如何定义" margin"。一个非常简单的答案是

GROUP BY r/5, g/5, b/5

(假设r,g和b是某种形式的整数,而不是浮点数或数字)

如果需要,你可以做一些比较漂亮的事情(可能还有窗口功能)。

除此之外,我建议创建一个复合类型:

CREATE TYPE pixel AS( r smallint, g smallint, b smallint);

然后您可以将整个图像作为像素[]的2D数组存储在一行中。对于大多数事情,我希望它更容易一些。它也应该表现得更好。