[英]Rank over partition in Oracle SQL
我以某種方式獲取了之前(BLAB)的數據...但是沒有了之后(ALAB)的數據....
因此,患者通常會在手術之前和之后進行實驗室檢查。我的代碼能夠捕獲之前但之后的信息。...
WITH BLAB AS
(
SELECT /*+PARALLEL*/
PAT.PATID_CD,
PAT.NOTED_DT,
LAB.COLLECTION_DT,
LAB.RESULT_DE,
LAB.UNI_LAB_CD,
LAB.PROCEDURE_DE,
RANK() OVER (PARTITION BY LAB.PATID_CD, PAT.NOTED_DT ORDER BY LAB.COLLECTION_DT DESC) AS RNK
FROM KPHC_PROBLEM_LIST_CN PAT
LEFT OUTER JOIN LAB
ON
PAT.PATID_CD = LAB.PATID_CD
AND LAB.REGION_CD = PAT.REGION_CD
AND LAB.REGION_CD ='CN'
AND LAB.COLLECTION_DT BETWEEN TO_DATE ('01-JAN-12') AND TO_DATE ('01-JAN-16')
AND (PROCEDURE_DE LIKE '%EGFR%'
OR PROCEDURE_DE LIKE '%INR%'
OR PROCEDURE_DE LIKE '%HEMOG%'
OR PROCEDURE_DE LIKE '%HEMATR%'
OR PROCEDURE_DE LIKE '%PLATE%'
OR PROCEDURE_DE LIKE '%CRCL%'
OR PROCEDURE_DE LIKE '%CREATI%'
OR PROCEDURE_DE LIKE '%PTT%'
OR PROCEDURE_DE LIKE '%ANTI-XA%')
AND LAB.COLLECTION_DT < PAT.NOTED_DT
)
, ALAB AS
(
SELECT /*+PARALLEL*/
PAT.PATID_CD,
PAT.NOTED_DT,
LAB.COLLECTION_DT,
LAB.RESULT_DE,
LAB.UNI_LAB_CD,
LAB.PROCEDURE_DE,
RANK() OVER (PARTITION BY LAB.PATID_CD, PAT.NOTED_DT ORDER BY LAB.COLLECTION_DT ASC) AS RNK
FROM KPHC_PROBLEM_LIST_CN PAT
LEFT OUTER JOIN LAB
ON
PAT.PATID_CD = LAB.PATID_CD
AND LAB.REGION_CD = PAT.REGION_CD
AND LAB.REGION_CD ='CN'
AND LAB.COLLECTION_DT BETWEEN TO_DATE ('01-JAN-12') AND TO_DATE ('01-JAN-16')
AND LAB.UNI_LAB_CD = 'HGB_'
AND (PROCEDURE_DE LIKE '%EGFR%'
OR PROCEDURE_DE LIKE '%INR%'
OR PROCEDURE_DE LIKE '%HEMOG%'
OR PROCEDURE_DE LIKE '%HEMATR%'
OR PROCEDURE_DE LIKE '%PLATE%'
OR PROCEDURE_DE LIKE '%CRCL%'
OR PROCEDURE_DE LIKE '%CREATI%'
OR PROCEDURE_DE LIKE '%PTT%'
OR PROCEDURE_DE LIKE '%ANTI-XA%')
AND LAB.COLLECTION_DT > PAT.NOTED_DT
)
SELECT /*+PARALLEL*/
BLAB.PATID_CD,
BLAB.NOTED_DT AS PROCEDURE_DATE,
BLAB.PROCEDURE_DE AS LAB_TYPE,
BLAB.COLLECTION_DT AS DATE_TAKEN_AFTER,
BLAB.RESULT_DE AS LAB_BEFORE,
ALAB.COLLECTION_DT AS DATE_TAKE_AFTER,
ALAB.RESULT_DE AS LAB_AFTER
FROM
ALAB,
BLAB
WHERE
ALAB.PATID_CD = BLAB.PATID_CD
AND ALAB.NOTED_DT = BLAB.NOTED_DT
AND ALAB.RNK = 1
AND BLAB.RNK = 1;
如果要引用行的顯示順序,則需要一個ORDER BY
子句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.