我有這張桌子。在配置單元中,如何在2行之間進行計算?
+------------------------------------------------------------+
| ks | time | val1 | val2 |
+-------------+---------------+---------------+--------------+
| A | 1 | 1 | 1 |
| B | 1 | 3 | 5 |
| A | 2 | 6 | 7 |
| B | 2 | 10 | 12 |
| A | 4 | 6 | 7 |
| B | 4 | 20 | 26 |
+------------------------------------------------------------+
我想爲每個行,
ks | time | val1 | val1 of next ts of same ks |
需要明確的是,上述例子的結果應該是,
+------------------------------------------------------------+
| ks | time | val1 | next.val1 |
+-------------+---------------+---------------+--------------+
| A | 1 | 1 | 6 |
| B | 1 | 3 | 10 |
| A | 2 | 6 | 6 |
| B | 2 | 10 | 20 |
| A | 4 | 6 | null |
| B | 4 | 20 | null |
+------------------------------------------------------------+
(我需要爲值2相同的下以及)
我想了很多想出這個蜂巢查詢,但仍然沒有運氣。我可以在上面提到的here(Quassnoi的回答)中爲sql編寫查詢,但是無法在hive中創建等價物,因爲hive不支持select中的子查詢。
有人可以幫我實現嗎?
在此先感謝。
編輯:
查詢我試過了,
SELECT ks, time, val1, next[0] as next.val1 from
(SELECT ks, time, val1
COALESCE(
(
SELECT Val1, time
FROM myTable mi
WHERE mi.val1 > m.val1 AND mi.ks = m.ks
ORDER BY time
LIMIT 1
), CAST(0 AS BIGINT)) AS next
FROM myTable m
ORDER BY time) t2;
讓我看看你的查詢 –
用查詢更新了問題。謝謝。 – Bee
請更新您的問題和示例以反映您在下面提及的其他要求。謝謝。 –