我现在正在使用红移。 然后我喜欢运行像
这样的查询SELECT to_char(created_at, 'HH24') AS hour , to_char(created_at, 'YYYY-MM-DD HH24') AS tmp FROM log GROUP BY tmp;
这会返回错误,当我在mysql中执行它时,它似乎很好。 这个错误是
ERROR: column "log.created_at" must appear in the GROUP BY clause or be used in an aggregate function
当我像“group by created_at”这样更改group by子句时,它返回结果,但它有重复的列表。
是由于红移?
答案 0 :(得分:0)
如果您使用的是GROUP BY
子句,则查询中的任何列都必须出现在子句中,或者您必须指定聚合的方式。
在您的情况下,您似乎试图按小时汇总log
条目。我建议使用postgres日期操作函数,例如:
SELECT created_at::date AS date,
extract('HOUR' FROM created_at) as hour
FROM log
GROUP BY date, hour;