gpt4 book ai didi

postgresql - postgresql中按日期聚合函数分组

转载 作者:行者123 更新时间:2023-11-29 11:18:17 24 4
gpt4 key购买 nike

我在运行此查询时遇到错误

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

我收到错误消息:列“persons.updated_at”必须出现在 GROUP BY 子句中或用于聚合函数第 5 行:ORDER BY persons.updated_at DESC

如果我通过调用从组中删除 date( 函数,这会起作用,但是我使用 date 函数是因为我想按日期而不是日期时间分组

任何想法

最佳答案

目前还不清楚您希望 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中按日期聚合函数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com