I am trying to calculate distance between two coordinates and fetching some information based on a few conditions. A similar query with the 'having' clause was working in MySQL. But why is it not working in PostgreSQL?
This is my query:
SELECT *, ( 6371 * acos( cos( radians(latitude) ) * cos( radians( latitude1 ) ) *
cos( radians( longitude1 ) - radians(longitude) ) + sin( radians(latitude) ) *
sin( radians( latitude1 ) ) ) ) AS distance from table WHERE
verified=true AND best_for LIKE '%xyz%' AND uuid NOT IN (SELECT uuid::uuid FROM table2 WHERE
from_date BETWEEN '2020-12-17 06:30'::date AND '2020-12-18 12:30'::date AND
to_date BETWEEN '2020-12-17 06:30'::date AND '2020-12-18 12:30'::date AND )
HAVING distance < 50 ORDER BY distance
Why does distance not exist? And how can I modify this query to make it work in PostgreSQL?