Mysql計算相鄰兩兩記錄某個欄位的最大差值

2021-10-18 07:14:37 字數 2345 閱讀 8749

需求乙個患者有多條病程記錄,查詢該患者的 最大檢查間隔。即求兩兩記錄的最大檢查間隔(天數)。

注1:其中檢查時間是 case_record表中的create_time欄位,其中user_id是患者編號。

注2:下文的@符號是mysql的@變數標識。select @rownum:=0就是把0賦值給rownum變數。

初始:

62號患者的各個時間病程檢查時間如下。

第一步:

為患者的病程記錄進行編號,作為第乙個表。

第二步:

為患者的病程記錄進行編號,作為第二個表。操作和第一步一樣。

第三步

將第乙個表和第二個表進行關聯,同時新增兩個表的表記錄對應的行號邏輯(即第乙個表的表記錄行號 = 第二個表的表記錄行號-1)

第四步

最後計算兩兩記錄的最大檢查間隔(單位:天數)。

補充:考慮到如果是一次查詢多個患者的各個最大檢查間隔。

也就是虛引將最外層是的患者id 到 虛表裡,但是此時發現外層的資料傳不進虛表裡面,也就是上文的62是拿不到的。那麼此時可以使用以下方式。(把患者id提取到虛表外面,再做條件判斷),效果一樣。

兩兩交換兩個相鄰節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。如 給定1 2 3 4,返回2 1 4 3。說明 方法一 交換兩個節點裡的值而節點不動。該題禁止這樣做 方法二 老老實實的交換就好了 我的 if head null return head if head.next null return h...

Oracle同時更新兩記錄

t check表結構,該錶主鍵為 w id rw num 要變更的記錄 業務目標為同時修改這兩條記錄的opinion欄位 當用operator為sup時將opinion改為 超級管理員 當operator為其他值是將opinion修改為 普通管理員 最終處理方法使用了case when,sql如下 ...

Mysql 計算相鄰兩條記錄的時間差

比如排序之後我們想計算兩條相鄰記錄的時間差,因為mysql沒有視窗函式所以要麼模擬視窗函式要麼使用表自關聯,現有如下表資料 單獨只有這些資訊使用自關聯沒有約束條件,這時候我們可以使用增加乙個序號的字段,然後使用序號條件關聯 表一 select a.i i 1 as ord num from t pu...