Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 14/12/2016 20:57:03
- Nitsuja
- Membre
Question débutant
Bonjour,
Je suis début en PostgreSQL et j'arrive à trouver une solution sur le net.
Je voudrais exécuter la requête suivante:
SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM cities
WHERE id = 1
HAVING distance < 25
ORDER BY distance LIMIT 20;
Cependant, l'alias "distance" ne semble pas reconnu et j'obtiens l'erreur suivante:
ERROR: column "distance" does not exist
État SQL :42703
Caractère : 264
Merci d'avance pour votre aide
Hors ligne
#2 14/12/2016 21:35:43
- Nitsuja
- Membre
Re : Question débutant
La requête était pas très bien formée, je l'avais pris un peu au hasard sur le net.
J'ai réussi à la faire tourner avec:
SELECT *,
(6371 * acos( cos( radians(46.38) ) * cos( radians( latitude) ) * cos( radians( longitude) - radians(4.916) ) +
sin( radians(46.38) ) *
sin( radians( latitude) ) ) )
AS distance
FROM cities
WHERE ( 3959 * acos( cos( radians(46.38) ) *
cos( radians( latitude) ) *
cos( radians( longitude) -
radians(4.916) ) +
sin( radians(46.38) ) *
sin( radians( latitude) ) ) ) < 40
ORDER BY distance LIMIT 10;
Est-ce optimal ?
Hors ligne
#3 16/12/2016 19:22:53
- gleu
- Administrateur
Re : Question débutant
Optimal par rapport à quoi ?
Guillaume.
Hors ligne
Pages : 1