【发布时间】:2021-06-27 20:08:55
【问题描述】:
我有一个带有 'GROUP BY' 的 postgresql 函数,它在我的本地服务器上运行良好(postgresql 版本是 12.6),但得到了著名的错误 'column "f.fa_docnum" 必须出现在 GROUP BY 子句中或用于运行 postgresql 9.2.24 的 Web 服务器上的聚合函数。我对此完全感到困惑。 GROUP BY 子句的两个版本的文档完全相同。
这里是函数(比原来的简单一点,但得到的结果是一样的):
SELECT
f.fa_docnum,
f.fa_date,
sum(l.lj_credit),
sum(l.lj_debit)
FROM livrejournal l, document d, facture_achat f
WHERE d.doc_id = l.lj_docid
AND d.doc_fa_docnum = f.fa_docnum
AND f.fa_fournisseur = 59
GROUP BY (f.fa_docnum, f.fa_date);
在 9.2 版本的生产站点上,如果我删除 GROUP BY 子句中的“f.fa_date”列,我不会收到任何错误,而在 12.6(以及以前的更低版本)的本地开发站点上,我不会收到任何错误案子。 如果有人对这种奇怪的行为有任何想法,也许有一些提示或解决方法,我将不胜感激。
【问题讨论】:
-
与您的问题无关,但是:Postgres 9.2 是no longer supported,您应该尽快计划升级。
标签: group-by postgresql-9.2 postgresql-12