0

列イベントを持つテーブルがあります。INやOUTなどのデータがあります。

ここで、特定の ID の最初の IN の時刻と同じ ID の最後の OUT の時刻を持つ 2 つの列を作成する必要があります。

リードとラグを使用してウィンドウ関数によるパーティションを使用する必要があります。

これどうやってするの?

どんな助けでも素晴らしいでしょう!

私はHIVEでこれをしなければなりません!

4

1 に答える 1

0

日付列もあると思います(それを と呼びましょうdt)。
すべての ID の最初の IN と最後の OUT を取得するには、次のようにする必要があります。

select 
  id,
  min(case when event='IN' then dt end) first_in, 
  max(case when event='OUT' then dt end) last_out
from table
group by id
于 2014-08-26T12:26:38.790 に答える