sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik al mijn gegevens opvragen binnen een afstand van 5 meter?

Over het algemeen is de beste PostGIS-functie voor een dergelijke zoekopdracht ST_DWithin() :

bijv. alle klanten die binnen 1000 meter van winkel #1 wonen:

SELECT customers.* 
FROM customers, shops
WHERE ST_DWithin(customers.the_geog, shops.the_geog, 1000)
  AND shop.id = 1

ST_DWithin gebruikt de ruimtelijke index die u had moeten maken en daarom beter presteert dan ST_Distance.

In Django lijkt er een corresponderend filter te zijn genaamd dbinnen :

D(m=5) retourneert een afstandsobject met een lengte van 5 meter

geom is de geometrie van waaruit u afstanden tot postcodeobjecten wilt berekenen

dwithin() is de gebruikte functie

poly is het geometrie-attribuut van postcode-objecten

z = Zipcode(code=77096, poly='POLYGON(( 10 10, 10 20, 20 20, 20 15, 10 10))')


  1. GROUP BY vs ORDER BY

  2. Is er een ernstige prestatiehit voor het gebruik van buitenlandse sleutels in SQL Server?

  3. LOWER() Functie in Oracle

  4. Maak een lijst van de accounts die zijn gekoppeld aan een database-e-mailprofiel in SQL Server