簡體   English   中英

SQL-查找特定日期之后的兩個最接近的日期

[英]SQL - Find the two closest date after a specific date

尊敬的Stack Overflow社區,

我正在尋找第一個后兩個連續日期少於7天的患者ID

所以第二天和第一天之間的差異date <= 7

和第三和第二個date <= 7之間的差異date <= 7

例:

ID           Date
1          9/8/2014
1          9/9/2014
1          9/10/2014

2          5/31/2014
2          7/20/2014
2          9/8/2014

對於患者1,其后的兩個日期相隔不到7天。

但是,對於患者2,以下日期相隔7天以上(50天)。

我正在嘗試編寫一個僅輸出患者ID“ 1”的SQL查詢。

謝謝你的幫助 :)

您可以嘗試使用窗口函數lag()

select * from
(
select id,date,lag(date) over(order by date) as prevdate
from tablename
)A where datediff(day,date,prevdate)<=7

您想使用lead() ,但這很復雜,因為您只想在前三行使用它。 我想我會去:

select t.*
from (select t.*,
             lead(date, 1) over (partition by id order by date) as next_date,
             lead(date, 2) over (partition by id order by date) as next_date_2,
             row_number() over (partition by id order by date) as seqnum
      from t
     ) t
where seqnum = 1 and
      next_date <= date + interval '7' day and
      next_date2 <= next_date + interval '7' day;

暫無
暫無

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

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