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