簡體   English   中英

SQL:如何減去兩個字段屬於相同的ID

[英]SQL: How to subtract two fields belongs to same ID

我有如下輸出

在此處輸入圖片說明

在上面的代碼中,Tx_ID保持不變,但購買第二項變為NULL。 所以我有多行。

現在,我必須計算第一次購買和第二次購買之間的時間差,但始終TX_ID保持不變。

任何建議,不勝感激。

謝謝。

假設每個Tx_ID只有2個條目,則可以嘗試以下操作:

SELECT Tx_ID,SUBTRACT(MAX(Tx_Time),MIN(Tx_Time)) FROM Tx_Table GROUP BY Tx_ID HAVING count(*) > 1

您可以使用LAG獲得先前的值。
然后使用它來獲取與當前記錄的差異。

SELECT 
 t.*, 
 t.tx_time - LAG(t.tx_time) OVER (PARTITION BY t.tx_id ORDER BY t.tx_time) AS timestamp_diff 
FROM YOUR_TABLE t

以下內容應在第1次和第2次之間進行精確比較,以獲取Tx_ID

SELECT   tx_id, 
         Subtract(Max(tx_time),Min(tx_time)) 
FROM     tx_table T1 
WHERE    tx_time >= 
         ( 
                SELECT Max(tx_time) 
                FROM   tx_table T2 
                WHERE  tx_time < 
                       ( 
                              SELECT Max(tx_time) 
                              FROM   tx_table 
                              WHERE 
                              and    tx_id = t1.tx_id) 
                AND    tx_id = t1.tx_id) 
GROUP BY tx_id 
HAVING   count(*) > 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM