Portál AbcLinuxu, 6. května 2025 21:03

Dotaz: Postgres - jak obejít limit v rekurzivním CTE

30.11.2010 12:54 jeleniste | skóre: 13 | blog: Prokustovo lože
Postgres - jak obejít limit v rekurzivním CTE
Přečteno: 190×
Odpovědět | Admin
Popis problému: Mám vrstvu linií (cesty) "v postgisu", přičemž některé linie jsou opakovaně digitalizované, takže jsou tam obrazy některých cest víckrát, přičemž ale nejsou totožné. Potřebuji dostat vrstvu, kde bude "každá cesta vymalovaná právě jednou". Používám pravidlo, že duplicita to je ve chvíli, kdy jedna cesta je překryta desetimetrovým bafrem druhé (St_Buffer). Chtěl bych to udělat pomocí cte a "nabalovat to jako sněhuláka" protože jedna cesta tam může být klidně 5X. Představoval jsem si použití cte, tak, že v každém kolečku tý rekurze přidam jeden záznam,kterej není možné překrýt bafrem žádného prvku, kterej už v cte je a má id, kerý ještě v cte neni (snad jsem se vyjádřil srozumitelně). ALE!!! V cte nejde použít LIMIT. Je způsob jak tohle občůrat??? Dík.
Je.
dostal jsem se k tomuhle zatím, ale nefunguje mě to.
with recursive cte as
(
  Select * from vzorek.cesty where gid = 1
  union all
  Select tt.* from vzorek.cesty tt, cte
  where not ST_Crosses(ST_Buffer(cte.geometry, 10), tt.geometry)
  and 
  tt.gid ! = cte.gid
  )


select * from cte
Nejsem blbý, jen se hloupě ptám
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.