Mer

Hvordan kan jeg telle poeng fra flere bufferavstander i PostGIS som oppdaterer tabellen?

Hvordan kan jeg telle poeng fra flere bufferavstander i PostGIS som oppdaterer tabellen?


Jeg har et problem angående en beregning på PostGIS. Jeg må beregne hvor mange anlegg som faller innenfor en gitt avstand. Dette er egentlig ikke et problem, men det er å oppdatere bordet mitt.

Jeg har denne koden:

OPPRETT TABELL my_table AS SELECT buffer1.id, COUNT (facility1) as bf1 FROM buffer1 LEFT JOIN facility1 ON ST_CONTAINS (buffer1.st_buffer, facility.geom) GROUP BY buffer1.id

Nå må jeg gjøre dette igjen (35 ganger), så jeg tenkte å oppdatere tabellen ved å skrive inn:

OPPDATER my_table SET buffer2 FROM (SELECT / * count statement * /) som buffer2

Men dette vil ikke fungere.

Jeg klarte å få en ekstra kolonne med Alter Table -setningen, men den var tom.

Jeg kan dette manuelt, men det er lettere å gjøre dette i 1 spørring, i stedet for å skrive om 36 spørsmål.


Jeg fikk det til å fungere ved å skrive inn dette spørsmålet:

OPPRETT TABELL my_table AS SELECT buffer1.id, COUNT (facility1) as bf1 FROM buffer1 LEFT JOIN facility1 ON ST_CONTAINS (buffer1.st_buffer, facility.geom) GROUP BY buffer1.id NATURAL JOIN SELECT buffer2.id, COUNT (facility1) as bf2 FROM buffer2 VENSTRE JOIN-anlegg1 PÅ ST_CONTAINS (buffer2.st_buffer, facility.geom) GROUP BY buffer2.id NATURLIG JOIN etc.

Ganske enkel løsning, og det fungerte. Takk for din assistanse.


Se videoen: Deploying a PostGIS database Part 6 - Mitigating performance issues