Re: haversine formula with postgreSQL - Mailing list pgsql-general

From Tom Lane
Subject Re: haversine formula with postgreSQL
Date
Msg-id 4642.1253224069@sss.pgh.pa.us
Whole thread Raw
In response to haversine formula with postgreSQL  (Jonathan <jharahush@gmail.com>)
Responses Re: haversine formula with postgreSQL
Re: haversine formula with postgreSQL
List pgsql-general
Jonathan <jharahush@gmail.com> writes:
> Here is my PHP with SQL:
> $query = sprintf("SELECT 'ID', 'FACILITY', 'ADDRESS', latitude,
> longitude, ( 3959 * acos( cos( radians('%s') ) * cos( radians
> ( latitude ) ) * cos( radians( longitude ) - radians('%s') ) + sin
> ( radians('%s') ) * sin( radians( latitude ) ) ) ) AS distance FROM
> aaafacilities HAVING distance < '%s' ORDER BY dist LIMIT 0 OFFSET 20",

Sigh, you've been misled by MySQL's nonstandard behavior.  You cannot
refer to output columns of a query in its HAVING clause; it's disallowed
per spec and not logically sensible either.  The simplest way to deal
with it is just to repeat the expression in HAVING.  If you really
really don't want to write it twice, you can use a subquery.

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Row estimates on empty table
Next
From: Martin Gainty
Date:
Subject: Re: 'Weird' errors