Mysql 我需要将两个表链接在一起,只返回最高的组平均值
因此,我尝试将我的两个表链接在一起,我有我的Mysql 我需要将两个表链接在一起,只返回最高的组平均值,mysql,sql,Mysql,Sql,因此,我尝试将我的两个表链接在一起,我有我的Artist表和我的CD表。我的CD表包含许多CD条目,包括CD.cdID、CD.artID、CD.cdTitle、CD.cdPrice和CD.cdGenre。我的Artist表包含,Artist.artID,Artist.artName。我正在尝试返回在CD表中所有CD的平均价格最高的Artist.artName 这是我到目前为止的代码。到目前为止,它通过CD.artID获得了CD的最高平均价格,但我不确定如何将其结合起来,以便我可以显示Artist
Artist
表和我的CD
表。我的CD
表包含许多CD条目,包括CD.cdID
、CD.artID
、CD.cdTitle
、CD.cdPrice
和CD.cdGenre
。我的Artist
表包含,Artist.artID
,Artist.artName
。我正在尝试返回在CD
表中所有CD的平均价格最高的Artist.artName
这是我到目前为止的代码。到目前为止,它通过CD.artID
获得了CD的最高平均价格,但我不确定如何将其结合起来,以便我可以显示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。在加入表后,您可以使用
分组方式
——同样的规则适用,即所有未聚合的列都必须分组。若要仅查找平均值最高的艺术家,您可以使用简单的顺序和限制来替换have:
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;