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部电影。