PSQL:使用JOIN函数时“必须出现在GROUP BY子句中或在聚合函数中使用”错误

问题描述 投票:0回答:1

我正在尝试加入一张桌子但是我收到了一个错误。

我需要提供一个子查询,但不知道在哪里。这就是我尝试过的。

select q.id, q."createdAt", count(qq.id), "AccountId", "ProgramId" 
from "Quizzes" q 
join "QuizQuestions" qq on "QuizId" = q.id 
join "Accounts" a on a.id = "AccountId" 
where "ProductId" = 'abfb4db4-8605-46dd-a23d-ae52a28c1940' 
       and "selectedOptionIndex" is not null 
       and q."createdAt" >= '1-7-19' 
group by q.id;

结果:ERROR: column "a.ProgramId" must appear in the GROUP BY clause or be used in an aggregate function

sql psql
1个回答
1
投票

所有非聚合列应位于GROUP BY中:

select q.id, q."createdAt", count(qq.id), "AccountId", "ProgramId"
from "Quizzes" q join
     "QuizQuestions" qq
     on qq."QuizId" = q.id join
     "Accounts" a
     on a.id = "AccountId"
where "ProductId" = 'abfb4db4-8605-46dd-a23d-ae52a28c1940' and
      "selectedOptionIndex" is not null and
       q."createdAt" >= '2017-01-17'
group by q.id, q."createdAt", "AccountId", "ProgramId";

我将日期格式更改为标准日期格式。您还应该使用其表别名为所有列引用添加别名。而且,所有的双引号都令人困惑。你真的需要它们吗?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.