【发布时间】:2018-05-29 04:45:11
【问题描述】:
使用spark-sql 的测试由于以下错误而失败:
必须聚合相关的标量子查询
失败的 SQL 查询的相关部分:
COALESCE(
CASE WHEN ndc_code IN
(SELECT CODE FROM BOC_MED_METADATA WHERE CODE_TYPE = 'ndc')
THEN '180'
END,
CASE WHEN hcpcs_code IN
(SELECT CODE FROM BOC_MED_METADATA WHERE CODE_TYPE = 'hcpcs')
THEN '180'
END,
med_order_end_dttm,
CASE WHEN days_supply IS NOT NULL
THEN
CASE
WHEN discontinued AND (med_order_recorded_dttm BETWEEN medication_start AND start_plus)
THEN med_order_recorded_dttm
WHEN discontinued AND (med_order_recorded_dttm > start_plus)
THEN start_plus
WHEN NOT discontinued
THEN start_plus
END
END,
medication_start
)
coalesce 中的前两个cases 是我添加的,导致测试失败。我相信这是因为子查询将如何返回多行,但我不确定如何解决这个问题。任何帮助表示赞赏。如果有什么不同,这个SQL 只是在 Spark 中运行以进行测试,它实际上是在生产中的雪花仓库上运行的。
【问题讨论】:
标签: scala apache-spark apache-spark-sql