0
我试图构造一个查询,选择一个组名和具有最高销售额的CD的名称。该模式看起来像Postgres:错误:列必须出现在GROUP BY子句中或用于聚合函数中
组(组名,groupCode)
CD(cdTitle,numberSold,groupCode)
我已经建立了一个这样的查询:
SELECT mg.groupName, cd.cdTitle, MAX(cd.numberSold) as maxSold
FROM musicalGroup mg, cd cd
WHERE cd.groupCode = mg.groupCode
GROUP BY mg.groupCode
但我收到错误
ERROR: column "cd.cdtitle" must appear in the GROUP BY clause or be used in an aggregate function
如果我从SELE中删除cd.cdtitle CT声明我能够得到正确的结果显示
groupname... maxsold
"Test"... 80000
"Test2"... 81000
等等。有没有办法让我也从这个查询中检索CD名称?
啊,我很抱歉。复制并粘贴查询时发生错误。这个问题源于我试图打印cd.cdTitle,而不是将代码和名称分组。我编辑了我的查询来反映这一点。 – JCDJulian
我用我认为最有意义的方式更新了我的答案。 –
嗯。这似乎很奇怪。它列出了每张CD上的艺术家最高销售额,当时我想要的是每位艺术家销量最高的一张CD。 – JCDJulian