
請教一個SQL陳述句,比如A表中有這幾個欄位,PVID,TransferDT,TransferReason,PVID一樣的為一個人,(TransferReason)分入科和出院,TransferDT為入科和出院的時間點
查時間差我知道DATEDIFF(HH,'2020-11-03 00:40:00.000','2020-11-03 09:40:00.000')傳實際的引數這樣寫,
如果要查所有人(PVID一樣的為一個人)從入科到出院時間差的平均值怎么寫,請各位大佬賜教
uj5u.com熱心網友回復:
1、日期取值為數字“小時分鐘”,如0920,0020可能需要日期取值為數字時的計算方式
2、數字加和,取平均值
可能需要將超出60分鐘的結果,轉成1小時
可能需要定義小數位數
3、重新定義為日期格式
大概就這樣吧……如果是我可能會自定義一下函式
uj5u.com熱心網友回復:
一個人會有多個出院入院的時間吧uj5u.com熱心網友回復:
SELECT PVID,AVG(DIFF) AS AVG_DIFF
FROM
(SELECT A.PVID,DATEDIFF(HOUR,B.TransferDT,A.TransferDT) AS DIFF
FROM
(SELECT *,ROW_NUMBER OVER (PARTITION BY PVID ORDER BY TransferDT) AS SEQ FROM TABLE WHERE CHARINDEX('出院',TransferReason)>0) AS A
JOIN (SELECT *,ROW_NUMBER OVER (PARTITION BY PVID ORDER BY TransferDT) AS SEQ FROM TABLE WHERE CHARINDEX('入科',TransferReason)>0) AS B
ON A.PVID=B.PVID AND A.SEQ=B.SEQ) AS C
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/201951.html
標籤:基礎類
上一篇:階數
