0

製品のリスト機能には、リストに表示される ID のリストを格納するデータがあります。私たちのデータの小さなセット (現在は修正されています) では、結果のリストに含まれる ID が加算的に保存されます。私が伝えようとしていることの詳細については、以下のスクリーンショットをご覧ください。

Datetime            User              Action           Extra
5-20-2015 9:00AM     A                 list           ids: 1
5-20-2015 9:00AM     A                 list           ids: 1, 2   
5-20-2015 9:00AM     A                 list           ids: 1, 2, 3
5-20-2015 9:01AM     B                 list           ids: 5
5-20-2015 9:01AM     B                 list           ids: 5, 6
5-20-2015 9:01AM     B                 list           ids: 5, 6, 7

このタイプのデータ編成に対して HIVE または SQL クエリを作成することは可能ですか? サブクエリで LENGTH(extra) をクエリしてから MAX(LENGTH(extra)) データを取得しようとしましたが、うまくいきませんでした。

ID の FINAL リストのみを取得するために、このデータを処理する最善の方法は何ですか?

4

1 に答える 1

0

ウィンドウ関数は、row_number()あなたが求めているものかもしれません(私は、日付で注文している追加データソースに対するクエリによく使用します):

select * from
(select *, 
 row_number() over (partition by user order by length(extra) desc) rn
 from yourtable
 ) a
 where rn = 1
于 2015-05-25T03:42:27.973 に答える