2016-08-25 14 views
-1

こんにちは私は各IDの各トランザクション間の時間差を計算しようとしています。私は私は本当に任意の助けをいただければ幸いです各IDの最後のトランザクションからの時間を計算

Customer_ID | Time_diff 
1    5 
1    2 
1    1 
2    1 
2    2 

のようなものを見て、結果を取得しようとしている

Customer_ID | Transaction_Time 
1    00:30 
1    00:35 
1    00:37 
1    00:38 
2    00:20 
2    00:21 
2    00:23 

よう

データが見えます。

おかげ

+3

どのDBMSを使用していますか?これは 'lag()'関数を使って解決できます。 'transaction_time'カラムのデータ型は? –

答えて

0

ほとんどのデータベースはLAG()機能をサポートしています。ただし、日付/時刻関数はデータベースに依存する可能性があります。 SQL Serverの例を次に示します。

select t.* 
from (select t.*, 
      datediff(second, 
         lag(transaction_time) over (partition by customer_id order by transaction_time), 
         transaction_time 
        ) as diff 
     from t 
    ) t 
where diff is not null; 

ロジックはほとんどのデータベースで似ていますが、時間差を計算する関数は異なります。

関連する問題