1-- Patients WITH at least one haematology result2SELECTCOUNT(DISTINCT d.PROCHI) AS WithLabs3FROM Project_12345..Demography_Current d4INNER JOIN Project_12345..HaematologyRestructured h5ON d.PROCHI = h.PROCHI67-- Patients WITHOUT any haematology result8SELECTCOUNT(DISTINCT d.PROCHI) AS WithoutLabs9FROM Project_12345..Demography_Current d10LEFT JOIN Project_12345..HaematologyRestructured h11ON d.PROCHI = h.PROCHI12WHERE h.PROCHI IS NULL1314-- Combined summary in a single query15SELECT16COUNT(DISTINCT d.PROCHI) AS TotalCohort,17COUNT(DISTINCT h.PROCHI) AS WithLabs,18COUNT(DISTINCT d.PROCHI) - COUNT(DISTINCT h.PROCHI) AS WithoutLabs19FROM Project_12345..Demography_Current d20LEFT JOIN Project_12345..HaematologyRestructured h21ON d.PROCHI = h.PROCHI
1with engine.connect() as conn:2 demog = pd.read_sql("""3 SELECT DISTINCT PROCHI4 FROM Project_12345..Demography_Current5 """, conn)67 lab_prochis = pd.read_sql("""8 SELECT DISTINCT PROCHI9 FROM Project_12345..HaematologyRestructured10 """, conn)1112# Patients with and without lab results13has_labs = demog["PROCHI"].isin(lab_prochis["PROCHI"])1415print(f"Total cohort: {len(demog)}")16print(f"With labs: {has_labs.sum()}")17print(f"Without labs: {(~has_labs).sum()}")