Databricks SQL单元格中的相关列错误

时间:2018-11-28 17:57:29

标签: apache-spark apache-spark-sql databricks azure-databricks

我在Azure Databricks上的Jupiter Notebook中有一个SQL查询,这给了我以下错误

SQL语句中的错误:AnalysisException:非等式谓​​词中不允许相关列:

查询看起来像这样

Select p.PrdId, p.ProductDescription, p.PoolId, p.UomId, p.MpgId, 
  (Select First(ToDemandGroupId) From MasterData.UpdatesToProduct up Where 
  (
  IsNull(up.DemandGroupId) = 0
  Or 
  up.DemandGroupId = p.DemandGroupId
  ) ) as DemandGroupId1
From Raw.ProductPreUpdates p

如果我分别在子查询的where子句中执行这两个部分中的任何一个,则查询可以工作,但是当两个部分都存在时,会出现此错误。因此,如果我只有IsNull(up.DemandGroupId)= 0,则可以正常工作;或者如果我只有up.DemandGroupId = p.DemandGroupId,则可以正常工作,但不能同时使用。

问题出在查询的p.DemandGroupId部分。如果我将up.DemandGroupId = p.DemandGroupId替换为up.DemandGroupId = 4,那也可以。

0 个答案:

没有答案