によって返されました。結果のテーブル内のデータが次のようになります。フィルタデータは、私はそうのように見える非常に単純なクエリを、持っている機能
{1}
{1,2}
{1}
私は、このデータをフィルタリングする方法の多くを試してみました - {2}
を含むすべての行を取得するには、言います。しかし、私は失敗しました。
SELECT path FROM (
SELECT (ST_DumpPoints(geom)).path as path FROM layer_60_
) t WHERE path @> '{2}'::integer[]
この場合、サブクエリを使用すると、過度のように見えます。サブクエリなしですぐにフィルタリングする可能性はありますか?私自身の試みは失敗に終わった:
SELECT (ST_DumpPoints(geom)).path as path FROM layer_60_ WHERE path ... # indeed, wrong
SELECT (ST_DumpPoints(geom)).path as path FROM layer_60_ HAVING path ... # wrong
SELECT * FROM layer_60_ WHERE (ST_DumpPoints(geom)).path ... # does not work
SELECT (ST_DumpPoints(geom)).path as path FROM layer_60_ GROUP BY path HAVING path ... # wrong!!!
それでは、何が問題なのですか?サブクエリよりも単純な解決策がありますか?
contains演算子の代わりに 'ANY'を使用する方が良いでしょうか? '2 = ANY(p.path)'のように? – icuken