不匹配的输入“来自”期望 <EOF> SQL

Kha*_*med 7 sql apache-spark-sql

我正在 Spark 上运行一个大部分使用 SQL 的进程。在其中一个工作流程中,我收到以下错误:

不匹配的输入“来自”期望

代码是

 select a.ACCOUNT_IDENTIFIER,a.LAN_CD, a.BEST_CARD_NUMBER,  
 decision_id, 
 case when a.BEST_CARD_NUMBER = 1 then 'Y' else 'N' end as best_card_excl_flag 
 from (select a.ACCOUNT_IDENTIFIER,a.LAN_CD, a. decision_id row_number()
 over (partition by CUST_GRP_MBRP_ID 
    order by coalesce(BEST_CARD_RANK,999)) as BEST_CARD_NUMBER 
 from Accounts_Inclusions_Exclusions_Flagged a) a 
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我一生中的错误是什么

我试过检查逗号错误或意外括号,但这似乎不是问题。

小智 7

在代码的第四行中,您只需在 a.decision_id 之后添加一个逗号,因为 row_number() 是一个单独的列/函数。

PS:尝试在嵌套选择语句中使用缩进,以便您和您的同事可以轻松理解代码。干杯!


squ*_*man 0

我认为你的问题在于内部查询。a.和之间有一个空格,并且和decision_id之间缺少逗号。decision_idrow_number()

这是你想要的吗?

 SELECT
    a.ACCOUNT_IDENTIFIER,
    a.LAN_CD,
    a.BEST_CARD_NUMBER,
    decision_id, 
    CASE WHEN a.BEST_CARD_NUMBER = 1 THEN 'Y' ELSE 'N' END AS best_card_excl_flag 
 FROM (
    SELECT
        a.ACCOUNT_IDENTIFIER,
        a.LAN_CD,
        a.decision_id,
        row_number() OVER (partition BY CUST_GRP_MBRP_ID ORDER BY COALESCE(BEST_CARD_RANK,999)) AS BEST_CARD_NUMBER 
    FROM Accounts_Inclusions_Exclusions_Flagged A
 ) A; 
Run Code Online (Sandbox Code Playgroud)