1
データ内で "トランザクション"を見つけて、トランザクションごとにシーケンス番号を生成する必要があります。SQL - OLAP関数
各トランザクションは、check_in = 0 [チェックアウトを意味する]とcheck_in = 1 [チェックインを意味します]を1つのトランザクションとして定義します。その間にはn個のトランザクションがあります。またはcheck_in = 0
同じトランザクション[1トランザクションブロック]のシーケンス番号は同じである必要があります。 Customer_ID、Check_in、Dateのデータがあります。シーケンス番号を生成する必要があります
Sequence No Customer_ID Check_in Date
1 3252538 0 11/14/15 03:20 AM
1 3252538 0 11/14/15 07:37 PM
1 3252538 1 11/15/15 07:27 PM
2 3252538 0 11/17/15 12:34 AM
2 3252538 1 01/27/16 07:46 AM
3 3252538 0 02/01/16 09:09 PM
3 3252538 NULL 02/05/16 08:56 PM
3 3252538 1 02/05/16 11:24 PM
4 3252538 0 02/08/16 07:19 PM
4 3252538 0 02/13/16 02:16 AM
4 3252538 1 02/13/16 10:49 PM
5 3252538 0 02/16/16 06:07 PM
5 3252538 1 02/19/16 03:01 AM
これはどのようにSQLで実行できますか?
"1"は必ずしもトランザクションを終了しません。ビッグ・トランザクション内には、check_inに1と0のすべての組み合わせとNULL値を持つことができるミニ・トランザクションがいくつか存在する可能性があります。 check_in = 0の後にcheck_in = 1を指定すると、トランザクションが終了します。 –
@SreedharReddy。 。 。その場合、シーケンス "2"はなぜ0-0-1の後に開始するのですか?最初の取引を完了するには2つの* 1 *が必要になると思われます。 –
0-0-1はcheck_in = 0で、最初にcheck_in = 1が続き、最初のトランザクションが終了します。 –