2016-10-12 3 views
0

マイPGクエリ:エラー:列 "月" PGクエリに存在しない

SELECT "Tracks"."PageId", 
     date_trunc("month", "Tracks"."createdAt") AS month, 
     count(*) 
FROM "Tracks" 
WHERE "Tracks"."PageId" IN (29,30,31) 
GROUP BY month, "Tracks"."PageId" 

と私のスキーマ:として、なぜ私はこれを受けてると

id, createdAt, updatedAt, PageId

少し混乱エラー!

答えて

1

whereまたはgroup by句でエイリアスを使用できます。

SELECT "Tracks"."PageId", 
     date_trunc('month', "Tracks"."createdAt") AS month, 
     count(*) 
FROM "Tracks" 
WHERE "Tracks"."PageId" IN (29,30,31) 
GROUP BY date_trunc('month', "Tracks"."createdAt"), "Tracks"."PageId"; 

date_trunc()ための最初のパラメータはvarchar値であるので、あなたは、単一引用符ではなく二重引用符でそれを配置する必要があること:あなたは式を繰り返す必要があります。


あなたが派生テーブルにそれを置くことができる表現を繰り返したくない場合:

select "PageId", month, count(*) 
from (
    SELECT "Tracks"."PageId", 
      date_trunc('month', "Tracks"."createdAt") AS month 
    FROM "Tracks" 
    WHERE "Tracks"."PageId" IN (29,30,31) 
) t 
group by month, "PageId"; 

関連のない、しかし:あなたは本当に引用識別子を避ける必要があります。彼らはそれほど問題があり、価値がある。

+0

ありがとう!私自身の学習と明確化のために、これが失敗した理由は、一重引用符ではなく二重引用符で囲まれた月だったからです。 – benhowdle89

関連する問題