[英]Sql function find date difference between two consecutive rows per group
我正在研究臨床數據,通過查找日期差異來查找患者的總療程。 我可以使用 Python 來實現這一點,但 power bi 不支持該腳本。 所以我需要幫助在 SQL 中執行此操作。 我是 SQL 的基本用戶,所以不知道如何開始。
下面是原始數據
患者 ID | 會議日期 |
---|---|
264 | 2021 年 5 月 26 日 |
264 | 2021 年 5 月 27 日 |
264 | 2021 年 5 月 28 日 |
264 | 2021 年 5 月 19 日 |
264 | 2021 年 5 月 20 日 |
264 | 2021 年 5 月 21 日 |
264 | 2021 年 5 月 24 日 |
264 | 2021 年 5 月 25 日 |
264 | 2021 年 5 月 17 日 |
264 | 2021 年 5 月 18 日 |
281 | 2021 年 5 月 18 日 |
281 | 2021 年 5 月 25 日 |
281 | 2021 年 6 月 29 日 |
281 | 2021 年 6 月 1 日 |
281 | 2020 年 4 月 16 日 |
281 | 2020 年 4 月 23 日 |
281 | 2020 年 4 月 21 日 |
281 | 2020 年 4 月 28 日 |
281 | 2020 年 4 月 30 日 |
281 | 2020 年 5 月 5 日 |
281 | 2019 年 10 月 16 日 |
預期的 output 如下
根據@Akina 提示,我能夠從以下查詢中獲得所需的 output 注意:-我的 sessionDate列采用日期和時間戳格式。
select
t.PatientID,
CAST(t.SessionTimestamp as Date) as SessionDate,
LAG(t.SessionTimestamp) over(partition by t.PatientRecordId order by t.PatientID,t.SessionTimestamp) as Next_Date
from mytable t
order by
t.PatientID,
t.SessionTimestamp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.