1

ORACLE sqlで時差を取得するために、「2行目の日付/時刻(F3)」-「1行目の日付/時刻(F2)」の時間を計算したいと考えています。LAG 関数で (extract,to_char)apply を使用して日付を減算しようとしましたが、以下のように必要な出力結果を得ることができませんでした。誰かがこの問題について私を助けることができれば感謝します. ありがとう。

[取得したい出力][2]

SELECT stg_rmstmp_cj.ota_activity.ID,
stg_rmstmp_cj.ota_activity.LOT,stg_rmstmp_cj.ota_activity.TYPE,stg_rmstmp_cj.ota_activity.KEY, stg_rmstmp_cj.ota_activity.VALUE,A.DATE,
LAG(stg_rmstmp_cj.ota_activity.DATE) OVER (ORDER BY stg_rmstmp_cj.ota_activity.DATE) -stg_rmstmp_cj.ota_activity.DATE AS Different_time 
FROM stg_rmstmp_cj.ota_activity where A.ID='93K-100';

これは、次のようにパーティションを追加したときに発生した最新の新しいエラーですが、添付のスクリーンショットサンプルで問題を解決しているようです:

select EQP_ID,LOT_ID,ACTIVITY,ID,
TO_CHAR(MODIFIED_DATE,'yyyy-mm-dd hh24:mi:ss') dt,
TO_CHAR (DATE '1900-01-01' + ABS ( LAG(MODIFIED_DATE,1)OVER(ORDER BY MODIFIED_DATE) - MODIFIED_DATE), 'HH24:MI:SS')AS diff_withoutpartition,
TO_CHAR (DATE '1900-01-01' + ABS ( LAG(MODIFIED_DATE,1)OVER(PARTITION BY EQP_ID ORDER BY MODIFIED_DATE) - MODIFIED_DATE), 'HH24:MI:SS')AS diff_withpartition
from STG_RMSTMP_CJ.ota_activity where EQP_ID = '93K-P007' 
4

2 に答える 2