У меня есть этот запрос, и я хочу выполнить его на spark
SELECT A.PFR,
A.MFR,
A.MST,
(SELECT COUNT(*)
FROM Table1 T2
WHERE T1.PFR = T2.PFR
AND T1.MFR = T2.MFR
AND T1.MST >= T2.MST) AS RANK
FROM Table1 A
Но spark не поддерживает подзапрос с предложением о неравенстве
Я получаю эту ошибку
Коррелированный скалярный подзапрос может содержать только предикаты равенства
Поэтому я попытался использовать group by
, но не получил правильных результатов (у меня есть входные и выходные результаты)
SELECT A.PFR,
A.MFR,
A.MST,
B.countRank
FROM Table1 A
LEFT OUTER JOIN
(SELECT PFR,
MFR,
MST,
COUNT(MFR) countRank
FROM Table1 B
GROUP BY PFR,
MFR,
MST) B ON B.PFR = A.PFR
Существует метод для преобразования этого запроса в запрос соединения.
Заранее спасибо.