是否可以用联接替换交叉申请?

时间:2019-06-12 14:38:03

标签: sql sql-server apache-spark-sql

我正在对一些旧的SQL算法进行逆向工程,以迁移到Apache Spark。

我遇到了一个跨应用程序,据我了解它是TSQL特定的,并且在ANSII或Spark SQL中没有直接等效项。

经过清理的算法是:

JSON.stringify(textareaValue);

因此对于别名b中的每一行,我们交叉应用于内部查询。

是否可以根据联接操作(或其他方式)重写交叉应用,以便可以在spark sql中重新实现?

欢呼

特里

1 个答案:

答案 0 :(得分:0)

似乎您可以按以下方式重写查询:

SELECT T1.col1,
       T1.col2,
       sq.col3Sum
FROM tbl1 T1
     CROSS JOIN (SELECT SUM(T1sq.Col3) AS col3Sum
                 FROM tbl1 T1sq
                     JOIN tbl2 T2 ON T1sq.Col1 = T2.Col2
                     JOIN tbl3 T3 ON T2.col1 = T3.Col1) sq;

奇怪的是,在对JOIN的2个引用之间没有tbl1准则。