我需要将我的两张桌子链接在一起并返回最高的组平均值

时间:2015-04-22 19:59:17

标签: mysql sql

所以我试图将两个表连接在一起,我有Artist表和我的CD表。我的CD表包含许多CD Entrys,包括CD.cdIDCD.artIDCD.cdTitleCD.cdPriceCD.cdGenre。我的Artist表包含Artist.artIDArtist.artName。我正在尝试返回在CD表中所有CD的平均价格最高的Artist.artName。

到目前为止,这是我的代码。到目前为止,它将最高平均CD价格提高了CD.artID,但我不知道如何将其合并,以便我可以显示Artist.artName名称,而不是CD.artID

SELECT AVG(cdPrice) as cdPrice, artID
FROM CD
GROUP BY artID
HAVING AVG(cdPrice) = (SELECT MAX(cdPrice) FROM 
(SELECT AVG(cdPrice) as cdPrice FROM CD GROUP BY artID) A)

我通过PhpMyAdmin使用MySQL。

1 个答案:

答案 0 :(得分:3)

您可以在加入表后使用GROUP BY - 适用相同的规则,即必须对所有非聚合列进行分组。要仅查找最高平均值的艺术家,您可以使用简单的ORDER和LIMIT:

替换
SELECT AVG(cd.cdPrice) as avgPrice, a.artName
FROM CD cd INNER JOIN Artist a
on cd.artID = a.artID
GROUP BY a.artName
ORDER BY avgPrice DESC
LIMIT 1;

SqlFiddle here