Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Yuki_Suzuki
Employee
Employee

日跨りのデータを日別に分割-Intervalmatchの応用

勤務時間や稼働時間についての日跨りのデータを日別に分割したい場合、Intervalmatchを使ってデータを分けることができます。例えば下記のようなデータの分割を行ってみます。

元データ

コメント 2019-11-18 155327.png

Intervalmatchを使うと、開始時間と終了時間を持つ間隔データと、時刻を持つデータをマッチングさせることができます。この機能を応用して、ソースデータに各日付の0時をマッチングさせます。カレンダーはサンプルでは Inline Load で与えていますが、スクリプトで作成することもできます。(参考:Qlik Senseのマスターカレンダー作成テンプレート)

ソースデータとカレンダーをLoadした後、下記の命令でソースデータとカレンダーを紐づけます。

Inner Join IntervalMatch ( Time )

     LOAD Start, End

Resident data;

合成キーを整理するため、ソースデータとカレンダーをJoinし、カレンダをDropします。

left join(data) 

Load *

Resident Calendar;

drop tables Calendar;

この段階で下図の左のテーブルが作成できます。このテーブルを2回ロードして目的のデータを作成します。

ポイントは、同じIDの2件目以降のデータからは、前日0時からTimeまでのデータを作成すること、最終のデータからは、直前の0時からEndまでのデータを作成すること、さらに0時開始、0時終了のデータについては重複をさけることです。

コメント 2019-11-18 155539.png

詳細は添付アプリを、Intervalmatchについては、Helpをご参照ください。

0 Replies