私はシーケンス番号を持つテーブルを持っています。その非常に大きなテーブルは1600万行を与えるか、または取る。テーブルにはキーがあり、そのキーに発生するイベントがあります。キーが変更されるたびに、seq_numsは理論上再開します。teradataコスト効率の良い方法でテーブルを更新する
元のテーブルには、各イベントに関連付けられたタイムスタンプがありました。イベントの期間を取得するために、私は遅延列を作成し、現在のイベントのタイムスタンプから遅延列を差し引いて、期間を与えました。この時間は
以下の表にtime_in_minutes
と呼ばれる新しいテーブルは、プロパティ
- この場合、各キーは、ライン3車になるカテゴリを割り当てられている各イベントでの洗車での数を持っていました45分の乾燥手順に付した。
- 23分を含む第2行は、実際には23分間の洗濯ではなく、機械を23分間稼動させる。
ID番号144には、マシンの電源が入っていません。これは私がタイプの
Event
が前のレコードにスタートある場合SEQ_NUM 1にtime_in_mins
を移動したいkey Event time in mins seq_num 1 Start 0 1 1 Wash 23 2 1 Dry 45 3 1 Wash 56 4 1 Wash 78 5 1 Boil 20 6 1 ShutDown 11 7 2 Start 0 1 2 Wash 11 2 2 Dry 12 3 ------------------------------------------- 144 Wash 0 1 144 Wash 11 2 144 Dry 12 3
をデータセットに流行のようです。私たちが集約ときに、この後の分はきちんと
私は試みることができるとtime_in_mins
この時のために別のタイムラグで再び新しい列を作成することによって、表を更新
編集 14/10/2016
わずか順
key event total minutes
1 Start 23
1 Boil 20
1 Dry 45
1 Wash 134
1 ShutDown 11
2 Start 11
2 Dry 12
2 Wash 0
のうちにもかかわらず、顧客のための最終的な出力は以下のようであるあなたの助けをありがとう
シーケンス番号1のみがあり、2がない場合はどうなりますか? – dnoeth
これは非常に良い質問で、私が考えていなかった別のもの、つまりシーケンス番号1に0以外の値が入っていればどうなるでしょうか?私はこれを反映するために質問を更新します –
あなたは本当にテーブルを更新したいのですか、または選択内の計算をしますか?あなたのTeradataリリースは何ですか?期待どおりの結果を追加できますか? Btw、1,600万行は大きなテーブルではありません:) – dnoeth