0
моего входного файлаHadoop по сравнению с предыдущим с UDF из
2014-08-23 30000
2014-09-24 20000
2014-10-23 50000
2014-11-24 7000
Я хочу, чтобы результат, как этот
2014-08-23 30000
2014-09-24 -10000
2014-10-25 30000
2014-11-24 -47000
Я хочу, чтобы достичь этой цели без UDF.
Я попробовал этот код
SELECT C.ID ,C.DATE,C.VALUE AS CURRENT_DATE_VALUE,COALESCE(CAST(O.VALUE AS INT),0) AS PREV_DATE_VALUE,(C.VALUE-COALESCE(CAST(O.VALUE as INT),0)) AS DIFF_VALUE
FROM ITEM O
LEFT OUTER JOIN
(SELECT T.ID ,C.DATE,C.VALUE,MAX(UNIX_TIMESTAMP(T.DATE,'dd-MM-yyyy')) AS PREV_DATE
FROM ITEM C
LEFT OUTER JOIN ITEM T ON(C.ID = T.ID) WHERE
UNIX_TIMESTAMP (C.DATE,'dd-MM-yyyy') > UNIX_TIMESTAMP(T.DATE,'dd-MM-yyyy') GROUP BY
T.ID ,C.DATE,C.VALUE) C
ON (O.ID = C.ID AND UNIX_TIMESTAMP (O.DATE,'dd-MM-yyyy') = C.PREV_DATE)
Как вы получаете '-47000' в последней строке? – gobrewers14