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

招待状を作成してからユーザーがそれを受け入れるまでの待機時間の中央値を調べようとしています。このコードはエラーを生成します:

ERROR: column "elapsed" does not exist.

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

4

1 に答える 1

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;
于 2016-03-28T16:15:35.333 に答える