0

所以我想写一个如下的SQL语句......

我需要查找艺术家姓名、他们制作的 CD 数量以及他们的 CD 的平均价格的列表。仅返回拥有多张 CD 的艺术家的结果。

问题是每次我认为我得到它时,我都会收到一个错误,阅读“操作数应该包含 1 列”,我觉得我现在非常密集,但如果有人能帮助我,我会非常感激。

这是我上次尝试过的代码..

SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=(SELECT CD.artID, AVG(CD.cdPrice), COUNT(*)
                 as Count FROM CD GROUP BY CD.artID HAVING Count > 1)
4

2 回答 2

0

您的联接在右侧有三列,因此您可以使用类似

SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=(SELECT CD.artID
                 FROM CD 
                 GROUP BY CD.artID 
                 HAVING Count(*) > 1)
Group by Artist.artID, CD.cdPrice

选择

SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=CD.artID
Group by Artist.artID, CD.cdPrice

备选方案 2

SELECT Artist.artID, AVG(CD.cdPrice), Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=CD.artID
Group by Artist.artID
Having count(*) >1
于 2015-03-15T22:08:43.353 回答
0

你说WHERE artID= three columns这就是问题所在

于 2015-03-15T22:08:55.160 回答