使用空间查询创建视图并限制结果

时间:2017-04-21 10:52:34

标签: sql oracle oracle12c oracle-spatial

Oracle 12c DB with Locator ...

我有2个表 - table1有一个点几何列。 Table2有一个多边形几何列。 我想创建一个只包含完全包含table2多边形的视图 从table1 1点。这可能吗? 我尝试了以下但仍然返回包含多个点的多边形:

CREATE OR REPLACE FORCE EDITIONABLE VIEW VIEW1 AS
SELECT a.address, l.geometry as GEOMETRY
from table1 a 
inner join table2 l
on sdo_anyinteract(a.geometry, l.geometry) = 'TRUE'
having 2 >
(select count (a.address)
from table1 a 
inner join table2 l
on sdo_anyinteract(a.geometry, l.geometry) = 'TRUE');    

任何帮助/建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你应该能够使用一个简单的分组并计入having子句

SELECT
    a.address,
    l.id
FROM
    table1 a
    INNER JOIN table2 l ON (sdo_anyinteract(a.geometry,l.geometry) = 'TRUE')
GROUP BY
    a.address, l.id
HAVING
    COUNT(*) = 1;