Hvordan bruke SQL for å finne den nærmeste XY koordinater

Hvordan bruke SQL for å finne den nærmeste XY koordinater


Databaser drive de beste bedrifter og nettsteder i verden i dag, noe som åpner for effektiv spørring av store mengder data. Structured Query Language brukes til å hente informasjon fra databaser. Romlig informasjon, som koordinater blir ofte lagret i databaser. Du finner en oppføring i en database som er nærmest en bestemt posisjon ved hjelp av SQL med noen få linjer med kode.

Bruksanvisning

1 Bruk riktige kolonnenavn fra databasen i søket ellers søket returnerer en feil. For eksempel vil følgende spørring returnere en enkelt rad med kolonnenavnene fra tabellen som heter "MyTable":

SELECT TOP 1 * fra MyTable

Merk navnene på kolonnene som holder posisjonsinformasjon.

2 Ta avstand mellom to punkter ved posisjonene (X1, Y1) og (X2, Y2) som er gitt som:

((X1 - X2) ^ 2 + (Y1 - Y2)) ^ 2

Forutsatt at den romlige informasjonen er lagret i tabellen kalt "MyTable" i kolonnene kalt "POSX" og "POSY", blir følgende spørring returnerer data som er nærmest det punkt ved koordinatene X = 10,0, Y = 10,0:

SELECT TOP 1 *, ((POSX - 10,0) ^ 2 + (POSY - 10,0)) ^ 0,5 som Avstand fra MyTable

Juster X og Y-verdiene for å reflektere plasseringen av vedkommende punkt.

3 Input følgende spørring hvis mer enn én verdi er ønskelig å returnere de 20 nærmeste radene i tabellen nærmest det punkt ved x = 10,0, Y = 10,0:

SELECT *, ((POSX - 10,0) ^ 2 + (POSY - 10,0)) ^ 0,5 som Avstand fra MyTable ORDER BY Avstand LIMIT 20

Hint

  • Hvis du søker etter nærmeste breddegrad og lengdegrad, må du ta krumningen på jorden i betraktning. Den haversine formel, også kjent som "storsirkel avstand" skal brukes i stedet for formelen ovenfor.