将 T-SQL 重构为 Databricks SQL 以从子查询返回结果

问题描述 投票:0回答:1

我有以下 T-SQL,当我尝试使用 Databricks SQL 执行时,出现错误

Error in SQL statement: AnalysisException: cannot resolve '`rn`'

我有一个名为 db.myview 的视图,Databricks SQL 似乎无法执行 rn 的子查询(至少我是这么认为)

SELECT * 
FROM
(select 
    rn = ROW_NUMBER() OVER (PARTITION BY ID order by ID),
*
    from db.myview c
) c
where c.rn = 1

当我在 MS SQL 中执行上述查询时,没有任何问题。

sql-server t-sql databricks azure-databricks databricks-sql
1个回答
0
投票

Spark SQL 要求列别名位于列表达式之后。 所以

SELECT * 
FROM
(
    select ROW_NUMBER() OVER (PARTITION BY C_NAME order by C_CUSTKEY) as rn, *
    from CUSTOMER c
) c
where c.rn = 1
© www.soinside.com 2019 - 2024. All rights reserved.