0

LAG および LEAD 関数を使用して、列からリード値とラグ値を選択しようとしています。以下は表とデータです。

hive> select * from foo;                                                      
OK
a
1
2
3
4
5
6
7
8
9
Time taken: 0.923 seconds

リードとラグの値を選択しようとすると、次のエラーがスローされます。

hive> select LAG(a, 1) over (order by a) as previous, a, LEAD(a, 1) over (order by a) as next from foo;
FAILED: ParseException line 1:22 missing FROM at '(' near '(' in subquery source
line 1:23 cannot recognize input near 'order' 'by' 'a' in subquery source

この問題を解決するには?

4

1 に答える 1

0

ステートメントに「partition by」句がないことがわかります。

次の foo として、lead(a,1) over (a による順序による分割) を選択します。

日付/時刻、カテゴリなどの列が複数ある場合は、テーブルの 1 つの列だけで実行するのは役に立ちません。

于 2016-05-13T22:38:43.723 に答える