sql >> Database teknologi >  >> RDS >> PostgreSQL

K-nærmeste naboforespørgsel i PostGIS

Siden slutningen af ​​september 2011 har PostGIS understøttet indekserede nærmeste nabo-forespørgsler via en speciel operatør(er), der kan bruges i ORDER BY-klausulen:

SELECT name, gid
FROM geonames
ORDER BY geom <-> st_setsrid(st_makepoint(-90,40),4326)
LIMIT 10;

... returnerer de 10 objekter, hvis geom er nærmeste -90,40 på en skalerbar måde. Et par flere detaljer (muligheder og forbehold) er i dette meddelelsesindlæg, og brugen af ​​<-> og <#> operatørerne er også nu dokumenteret i den officielle PostGIS 2.0 reference. (Den største forskel mellem de to er, at <-> sammenligner formen centroids og <#> sammenligner deres grænser - ingen forskel for point, andre former vælger, hvad der er passende til dine forespørgsler.)



  1. Hvordan returnerer jeg en jsonb-array og en række objekter fra mine data?

  2. 4 funktioner til at returnere måneden fra en dato i MariaDB

  3. Hvordan sender du et argument til en PL/SQL-blok i en sql-fil kaldet ved hjælp af START i sqlplus?

  4. Oracle 11g får alle matchede forekomster af et regulært udtryk