我正在尝试去关联看起来像这样的查询:
select A.id, A.other_id A.data, A.data2,
(select count(*) from B where B.id = A.id and B.data < A.data),
(select count(*) from B where B.id = A.id and B.data < A.data and A.other_id = B.other_id),
(select count(*) from B where B.id = A.id and B.data < A.data and B.sth is True)
from A
我尝试使用类似select ... from A left join B on B.data < A.data where ...
的方法,但是结果并不完全相同,而且速度要慢得多。
有没有合理的方法来解相关这样的查询?
我想在不支持谓词不等式的相关子查询中运行此代码。
或者也许有另外一种方法来获得与spark相同的结果。
答案 0 :(得分:1)
您可以将其替换为条件聚合:
static_assert