2016-03-28 8 views
1
SELECT 
(users.created_at::timestamp - invitations.created_at::timestamp) as elapsed, 
percentile_disc(0.50) 
     WITHIN GROUP (ORDER BY elapsed) as median 
FROM invitations 
join users on users.id = invitations.user_id 

招待状の作成とユーザーによる受け入れの中間の待機時間を調べようとしています。このコードはエラーを生成します:Median with Postgres 9.4 - なぜ私のコードは動作しませんか?

ERROR: column "elapsed" does not exist. 

どうすれば修復できますか?

答えて

2

別名を定義するのと同じレベルでエイリアスを使用することはできません。これを派生テーブルにラップする必要があります。

select elapsed, 
     percentile_disc(0.50) WITHIN GROUP (ORDER BY elapsed) as median 
from (
    SELECT users.created_at::timestamp - invitations.created_at::timestamp as elapsed, 
    FROM invitations 
    join users on users.id = invitations.user_id 
) t; 
関連する問題