Postgres 9.3.5,PostGIS 2.1.4。
我在数据库中有两个表(polygons
和points
)。
points
我想知道每个中有多少polygon
。每个多边形将有 0 个点或超过 200000 个点。小问题如下。
我的point
表如下所示:
x y lan
10 11 en
10 11 fr
10 11 en
10 11 es
10 11 en
- #just for demonstration/clarification purposes
13 14 fr
13 14 fr
13 14 es
-
15 16 ar
15 16 ar
15 16 ps
我不想简单地计算每个多边形的点数。lan
我想知道每个多边形中最常出现的是什么。因此,假设每个-
点都表明这些点落入一个新的多边形中,我的结果将如下所示:
Polygon
桌子:
polygon Count lan
1 3 en
2 2 fr
3 2 ar
这是我到目前为止得到的。
SELECT count(*), count.language AS language, hexagons.gid AS hexagonsWhere
FROM hexagonslan AS hexagons,
points_count AS france
WHERE ST_Within(count.geom, hexagons.geom)
GROUP BY language, hexagonsWhere
ORDER BY hexagons DESC;
它给了我以下信息:
Polygon Count language
1 3 en
1 1 fr
1 1 es
2 2 fr
2 1 es
3 2 ar
3 1 ps
有两件事尚不清楚。
- 如何只获得最大值?
- 如果最大值可能相同,将如何处理?