【问题标题】:Why is this query showing error ORA-00923: FROM keyword not found where expected?为什么此查询显示错误 ORA-00923: FROM keyword not found where expected?
【发布时间】:2023-03-03 00:45:01
【问题描述】:

我有一个 sql 查询,执行时会抛出错误:

ORA-00923: FROM keyword not found where expected

下面是 SQL:

SELECT A.Agent_key, Sum(Total_Orders) 

FROM

(SELECT A.Agent_key, Sum(Total_Orders)

     RANK() OVER (ORDER BY Sum(Total_Orders) ASC) AS Rank

     FROM Fact_Order F, Dim_Time T

     WHERE F.Time_Id = T.Time_Id AND T.Quarter= '1' AND

     TO_CHAR(SYSDATE, 'YYYY') = T.Year

     GROUP BY A.Agent_key

)

WHERE Rank < = 1;

【问题讨论】:

    标签: oracle subquery oracle-apex oracle12c


    【解决方案1】:
    • Sum(Total_Orders) 后面少了一个逗号
    • 您还缺少子查询的别名(您在外部选择子句中使用A.Agent_key,那么A 必须是子查询的别名)
    • 外部查询中的group by 子句丢失。 (您正在使用聚合,因此需要 GROUP BY
    • sum(total_agents) 的别名,正如您在外部查询中所指的那样

    应该是

    SELECT A.Agent_key, Sum(Total_Orders) 
    FROM
    (SELECT A.Agent_key, Sum(Total_Orders) as total_orders,
            RANK() OVER (ORDER BY Sum(Total_Orders) ASC) AS Rnk
       FROM Fact_Order F, Dim_Time T
      WHERE F.Time_Id = T.Time_Id
        AND T.Quarter= '1' 
        AND TO_CHAR(SYSDATE, 'YYYY') = T.Year
     GROUP BY A.Agent_key ) A
    WHERE Rnk < = 1
    GROUP BY A.Agent_key;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多