2011-10-27 6 views
0

によってグループに表示されなければならないので、Postgresは文句を言っている:レール/ Postgresの:列は句

PGError: ERROR: column "sessions.created_at" must appear in the GROUP BY clause or be used in an aggregate function 

しかし、トラブルがあり、 "のcreated_at" は、GROUP BY句に表示されない:

SELECT  created_at, count(id) as visit_count FROM  "sessions" WHERE  ("sessions"."site_id" IN (4, 3)) AND ("sessions"."created_at" >= '2011-10-20 00:00:00.000000') AND ("sessions"."created_at" <= '2011-10-27 23:59:59.999999') GROUP BY date(created_at)) 

date()にラップされたcreated_atと何か関係がありますか?

ありがとうございます!

答えて

4

いいえ、表示されません。

GROUP BYにはdate(created_at)が含まれていますが、SELECTリストにはcreated_atしか含まれていません。 created_atがタイムスタンプの場合、これらは2つの異なるものです。

あなたはどちらかGROUPY BY created_atSELECT date(created_at)(おそらく後者)

+0

を使用する必要がありますが:-)あなたの先生に感謝します – imderek