簡體   English   中英

PGError:錯誤:列“ inboxes.id”必須出現在GROUP BY子句中或在聚合函數中使用

[英]PGError: ERROR: column “inboxes.id” must appear in the GROUP BY clause or be used in an aggregate function

我對MySQL數據庫有以下查詢:

SELECT inboxes.*
   , count(inboxes.conv) AS times
   , max(created_at) AS created_at
FROM `inboxes`
WHERE to_user = 2
   OR account_id = 2
GROUP BY conv
ORDER BY id DESC

該查詢可在我的本地主機上運行,​​但是如果將其部署到Heroku,則會收到此錯誤:

PGError: ERROR:  column "inboxes.id" must appear in the GROUP BY clause or
                 be used in an aggregate function

您需要在GROUP BY指定要選擇的所有字段,即:

SELECT inboxes.id, count(inboxes.conv) AS times, max(created_at) as created_at FROM WHERE (to_user = 2 OR account_id = 2) GROUP BY inboxes.id, conv ORDER BY inboxes.id DESC

為避免將來出現此類問題,請在本地安裝postgres並使用與生產環境相同的數據庫開發應用程序。

您應該擺脫inboxes.* 列出您需要提取的每個參數。

所有參數都必須分組( GROUP BY )或與組函數一起使用( MAX等)。

我不能告訴你為什么它可以在你的本地主機上工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM