在postgresql查询中的两个位置使用计算值
我想计算两个板条之间的距离,并显示该值。 我还想使用该值(四舍五入到最接近的KM) 注:人为的例子 这是我的在postgresql查询中的两个位置使用计算值,postgresql,Postgresql,我想计算两个板条之间的距离,并显示该值。 我还想使用该值(四舍五入到最接近的KM) 注:人为的例子 这是我的 SELECT ST_Distance( ST_GeogFromText( 'SRID=4326;POINT(' || longitude || ' ' || latitude || ')' ), ST_GeogFromText('SRID=4326;POINT(1 1)') ) AS distance, id from locations limit 1
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, id from locations limit 10
现在这一切都很好。。我以米为单位计算距离
但是我想得到米和公里的距离(这个问题很简单)
以下是我认为有效的方法
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, distance/1000 as distance_in_km, id from locations limit 10
这将返回一个错误。列“距离”不存在
它的箭头指向查询中的第二个“距离” 我真正想要避免的是计算的是完整值和四舍五入到KM 请注意:这不是实际的查询,而是故意提出问题的查询。请尝试以下操作:-
SELECT distance, distance/1000 as distance_in_km from
(
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, id from locations limit 10
) t;
现在我必须弄清楚如何更改活动记录调用的from子句。