簡體   English   中英

如何修復Postgres錯誤列不存在?

[英]How to fix Postgres error column does not exist?

我有以下查詢以發布數據庫

SELECT id,
       address, 
       dblong,  
       dblat,  
       111* DEGREES(ACOS(COS(RADIANS(latpoint)) * COS(RADIANS(dblat)) *  
                         COS(RADIANS(longpoint) - RADIANS(dblong)) +  
                         SIN(RADIANS(latpoint)) * SIN(RADIANS(dblat)))) AS distance_in_km 
FROM  
    (SELECT id, 
            address, 
            MAX(longitude) AS dblong,
            MAX(latitude) AS dblat  
     FROM doorbots  
     WHERE created_at > '%s' AND created_at < '%s'  
     GROUP BY 1) AS s  
JOIN 
  (SELECT %s AS latpoint, %s AS longpoint) AS p ON 1=1  
WHERE distance_in_km < %s  
GROUP BY 1;

我不明白如何解決以下錯誤: column "distance_in_km" does not exist

應該工作:

with q as (
SELECT id,
       address, 
       dblong,  
       dblat,  
       111* DEGREES(ACOS(COS(RADIANS(latpoint)) * COS(RADIANS(dblat)) *  
                         COS(RADIANS(longpoint) - RADIANS(dblong)) +  
                         SIN(RADIANS(latpoint)) * SIN(RADIANS(dblat)))) AS distance_in_km 
FROM  
    (SELECT id, 
            address, 
            MAX(longitude) AS dblong,
            MAX(latitude) AS dblat  
     FROM doorbots  
     WHERE created_at > '%s' AND created_at < '%s'  
     GROUP BY 1) AS s  
JOIN 
  (SELECT %s AS latpoint, %s AS longpoint) AS p ON 1=1  
)
select * from q
WHERE distance_in_km < %s  
GROUP BY 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM