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