PostgreSQL-GROUPBY子句或在聚合函数汇流中使用

PostgreSQL-GROUPBY子句或在聚合函数汇流中使用,postgresql,Postgresql,我正在尝试运行一些查询,这将带来每个用户创建的联系人的输出,我在运行查询时得到以下错误,有什么想法吗 错误: ERROR: column "user_mapping.lower_username" must appear in the GROUP BY clause or be used in an aggregate function 查询: SELECT lower_username AS "Username", display_name AS "Full Name"

我正在尝试运行一些查询,这将带来每个用户创建的联系人的输出,我在运行查询时得到以下错误,有什么想法吗

错误:

ERROR:  column "user_mapping.lower_username" must appear in the GROUP BY clause or be used in an aggregate function
查询:

SELECT 
    lower_username AS "Username", 
    display_name AS "Full Name", 
    count(DISTINCT CONTENT.title) AS "Pages created"
FROM 
    CONTENT
    LEFT JOIN 
    USER_MAPPING ON CONTENT.creator = USER_MAPPING.user_key
    LEFT JOIN 
    CWD_USER ON USER_MAPPING.lower_username = CWD_USER.lower_user_name
WHERE 
    creator IS NOT NULL AND 
    CONTENTTYPE IN ('PAGE', 'BLOGPOST')
GROUP BY creator
ORDER BY "Pages created" DESC;

例如,如果您有这样的案例:

lower_username   creator
-------------------------
A                X
B                X
C                Y
D                Y
若你们试图按创建者分组,系统不知道如何处理较低的用户名。要么是

lower_username   creator
-------------------------
A                X
C                Y


因此,您还需要按其余列进行分组(在我的示例中为lower_username),或者在未分组的列上应用一些聚合函数(例如,AVG、MAX等)。对于一个分组值,您需要在其他列中也只有一个值(如果您是通过select语句选择的)。

Great thing mate,感谢您的精彩解释,它现在可以工作了。我尝试投票,但似乎我需要15分才能投票:\
lower_username   creator
-------------------------
B                X
D                Y