需求乙個患者有多條病程記錄,查詢該患者的 最大檢查間隔。即求兩兩記錄的最大檢查間隔(天數)。
注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...