【问题标题】:Oracle: missing SELECT keyword, when using WITH clauseOracle:使用 WITH 子句时缺少 SELECT 关键字
【发布时间】: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;

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    Tis 之间不需要逗号吗?

    【讨论】:

    • 大概就是这样。我添加了逗号,现在我收到了不同的错误消息(一个好兆头)。谢谢!
    • 查询现在正在运行。我发布的代码不正确,我不得不对 T1 进行更改。
    • 您好,心理法官,我很抱歉,现在已经完成了。我承认答案很有用,但没有注意到“接受”按钮。我可能必须回到我之前的所有问题才能将它们标记为已回答...
    猜你喜欢
    • 2018-01-12
    • 2019-08-17
    • 2019-06-26
    • 2013-01-21
    • 2016-03-03
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多