这是我想要弄清楚的。
在1/1 / 15-9 / 30/15的时间范围内,BMI等于或高于第85百分位数的非重复客户的数量。
客户可以在这段时间内成倍增加,现在我正在提升未重复的客户,但是当他们的BMI发生变化时,如果他们进入第二/第三/第四/等时间,他们将被视为一个新的不重复的客户。
当我第一次进入BMI分数时,我只想算数。
SELECT DISTINCT
COUNT(PATIENT.PATIENT_NO) Custom,
PATIENT.PATIENT_NO Patient_no,
Vsfile.BMI_SCORE Bmi_score
FROM VSFILE Vsfile
INNER JOIN PATIENT PATIENT
ON Vsfile.PATIENT_NO = PATIENT.PATIENT_NO
WHERE (((Vsfile.BMI_SCORE > 1)
AND (PATIENT.ENCOUNTER_DATE BETWEEN '01/01/2015' AND '09/30/2015')))
GROUP BY PATIENT.PATIENT_NO,
Vsfile.BMI_SCORE
答案 0 :(得分:0)
你还需要退还他们的BMI吗?
如果没有,只需停止对其进行分组,例如:
Select count(distinct patient_no)
From my tables
Where BMIPercentile > .85
and encounter_date BETWEEN '01/01/2015' AND '09/30/2015'
如果你这样做,那么你要么想要一些额外的标准 - 例如取每位患者的max
BMI值 - 或windowed
函数。
作为旁注,我的答案假定您使用的是SQL服务器,但一般来说,如果您使用您正在使用的SQL类型(SQL服务器,MySQL,Oracle)标记您的问题,您将获得更多运气。 ..)。