SQL列定义不明确的错误

SQL列定义不明确的错误,sql,oracle,Sql,Oracle,我必须写一个查询,告诉我那些在电影中担任主角并发行专辑的名人: Select CELEB From StarredIn INTERSECT Select CELEB From Releases; 然后从这些名人那里,我必须统计这个查询中每个名人的电影和专辑数量。下面是我如何尝试这样做的: Select DISTINCT CELEB, COUNT(MOVIE) AS number_of_movies, COUNT(ALBUM) AS number_of_albums From StarredIn

我必须写一个查询,告诉我那些在电影中担任主角并发行专辑的名人:

Select CELEB
From StarredIn
INTERSECT
Select CELEB
From Releases;
然后从这些名人那里,我必须统计这个查询中每个名人的电影和专辑数量。下面是我如何尝试这样做的:

Select DISTINCT CELEB, COUNT(MOVIE) AS number_of_movies, COUNT(ALBUM) AS number_of_albums
From StarredIn, Releases
Where CELEB = 
(Select CELEB
From StarredIn
INTERSECT
Select CELEB
From Releases);
当我在oracle中运行这个程序时,我会收到一个错误,上面写着“列定义不明确”。那么我该如何解决这个问题呢

以下是我用于此目的的表格:

CREATE TABLE StarredIn (
  celeb VARCHAR(30), 
  movie VARCHAR(100)
);
CREATE TABLE Releases (
  celeb VARCHAR(30), 
  album VARCHAR(100)
);
选择DISTINCT table1.ColumnName,计数(table2.ColumnName2)作为电影的数量,计数(table1.ColumnName3)作为相册的数量
从表1到表2

其中table1.ColumnName=''
可以使用以下查询

SELECT A.CELEB, A.MOVIECOUNT, B.ALBUMCOUNT FROM
(SELECT  S.CELEB, COUNT(S.MOVIE) AS MOVIECOUNT FROM StarredIn S WHERE S.CELEB IN (SELECT  DISTINCT CELEB FROM Releases) GROUP BY S.celeb) A,
(SELECT  R.CELEB, COUNT(R.ALBUM) AS ALBUMCOUNT  FROM Releases R WHERE R.CELEB IN (SELECT  DISTINCT CELEB FROM StarredIn) GROUP BY R.celeb) B
WHERE A.CELEB = B.CELEB

两个表中都存在相同的列,因此请在查询中使用table1.column、table2.column2等。现在我收到一个错误,说S.ALBUM无效标识符。请尝试使用R.ALBUM和S.MOVIE:)它表示S.Celeb不是单个组函数。如果我把S.Celeb改为只说Celeb,那么它会回到where语句定义模糊的状态更新答案,请检查并让我知道。我现在没有收到任何错误,但是电影和专辑数量太高了。我们正在讨论的结果表明,这些名人已经发行了超过100000张专辑,主演了超过200000部电影。