group by 在 postgreSQL 中不起作用
group by is not working in postgreSQL
我想按 createdAt 对我的数据进行分组,但它不起作用我不知道为什么...
只按id分组,对我没用
这是有效的:
SELECT "id", "createdAt", "updatedAt"
FROM "tables" AS "Table"
WHERE "Table"."createdAt"
BETWEEN '2014-04-21 20:46:25.938-04' AND '2015-04-21 20:46:25.938-04'
GROUP BY "id";
这就是我想要的,但它根本不起作用...
SELECT "createdAt", "updatedAt"
FROM "tables" AS "Table"
WHERE "Table"."createdAt"
BETWEEN '2014-04-21 20:46:25.938-04' AND '2015-04-21 20:46:25.938-04'
GROUP BY "createdAt";
我有错误:
ERROR: column "Table.updatedAt" must appear in the GROUP BY clause or
be used in an aggregate function
ID 是唯一的,group by ID
就像一个普通的 select。
列 createdAt
不是唯一的,具有相同 createdAt
值的结果必须分组。您应该提供一种将它们分组的方式 - 使用 aggreagete 函数,将它们从 select
子句中删除或将它们添加到 group by
语句中。
您只能select聚合函数或"GROUP BY"中列出的字段,如告知
ERROR: column "Table.updatedAt" must appear in the GROUP BY clause or be used in an aggregate function
您的第一个查询仅有效,因为 "id" 是您的主键,因此可以保证每个组只有一行。
我想按 createdAt 对我的数据进行分组,但它不起作用我不知道为什么... 只按id分组,对我没用
这是有效的:
SELECT "id", "createdAt", "updatedAt"
FROM "tables" AS "Table"
WHERE "Table"."createdAt"
BETWEEN '2014-04-21 20:46:25.938-04' AND '2015-04-21 20:46:25.938-04'
GROUP BY "id";
这就是我想要的,但它根本不起作用...
SELECT "createdAt", "updatedAt"
FROM "tables" AS "Table"
WHERE "Table"."createdAt"
BETWEEN '2014-04-21 20:46:25.938-04' AND '2015-04-21 20:46:25.938-04'
GROUP BY "createdAt";
我有错误:
ERROR: column "Table.updatedAt" must appear in the GROUP BY clause or be used in an aggregate function
ID 是唯一的,group by ID
就像一个普通的 select。
列 createdAt
不是唯一的,具有相同 createdAt
值的结果必须分组。您应该提供一种将它们分组的方式 - 使用 aggreagete 函数,将它们从 select
子句中删除或将它们添加到 group by
语句中。
您只能select聚合函数或"GROUP BY"中列出的字段,如告知
ERROR: column "Table.updatedAt" must appear in the GROUP BY clause or be used in an aggregate function
您的第一个查询仅有效,因为 "id" 是您的主键,因此可以保证每个组只有一行。