SELECT date(updated_at),count(updated_at) as total_count FROM "persons"WHERE ("persons"."updated_at" BETWEEN '2012-10-17 00:00:00.000000' AND '2012-11-07 12:25:04.082224') GROUP BY date(updated_at)ORDER BY persons.updated_at DESC
我得到错误ERROR:列“persons.updated_at”必须出现在GROUP BY子句中或用于聚合函数liNE 5:ORDER BY persons.updated_at DESC
这是有效的,如果我删除日期(逐个组中的功能,但我使用日期功能,因为我想按日期分组,而不是日期时间
有任何想法吗
@H_419_12@ 目前还不清楚你希望Postgres返回什么.你说它应该由persons.updated_at命令,但你不从数据库中检索该字段.我想,你想做的是:
SELECT date(updated_at),count(updated_at) as total_count FROM "persons"WHERE ("persons"."updated_at" BETWEEN '2012-10-17 00:00:00.000000' AND '2012-11-07 12:25:04.082224') GROUP BY date(updated_at)ORDER BY count(updated_at) DESC -- this line changed!
现在,您明确告诉数据库按COUNT聚合的结果值进行排序.您还可以使用:ORDER BY 2 DESC,有效地告诉数据库按结果集中的第二列排序.但是,为了清楚起见,我非常希望明确说明该列.
请注意,我目前无法测试此查询,但我认为这应该可行.
总结以上是内存溢出为你收集整理的postgresql中的按日期聚合函数分组全部内容,希望文章能够帮你解决postgresql中的按日期聚合函数分组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)