【发布时间】:2014-03-13 05:56:22
【问题描述】:
我在运行以下查询时收到“错误:ORA-00928:缺少 SELECT 关键字”错误消息。
查询的目的是获取每十年在最多电影中出演(已加星,由 ord=1 表示)的演员的姓名。
我独立测试了 T1 和 T2 并且它们有效。我看不出我做错了什么。
你能给我解释一下吗?
注意:这是作业
WITH T1 AS
(SELECT decade, MAX(countTitle) maxCount
FROM (
SELECT FLOOR(yr/10)*10 decade, name, COUNT(title) countTitle
FROM movie JOIN casting ON (movie.id = casting.movieid)
JOIN actor ON (actor.id = casting.actorid)
WHERE (casting.ord = 1)
GROUP BY FLOOR(yr/10)*10, name
)
GROUP BY decade)
T2 AS
(SELECT decade, MAX(countTitle) maxCount
FROM T1)
T3 AS
(SELECT FLOOR(yr/10)*10 decade, name, COUNT(title) countTitle
FROM movie JOIN casting ON (movie.id = casting.movieid)
JOIN actor ON (actor.id = casting.actorid)
WHERE (casting.ord = 1)
GROUP BY FLOOR(yr/10)*10, name
)
SELECT T3.decade, T3.name, T3.countTitle
FROM T2 INNER JOIN T3
ON T3.decade = T2.decade AND T3.countTitle = T2.maxCount;
【问题讨论】: