sql—特定条件下的sql\计数值

pnwntuvh  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(268)

我想知道如何计算有条件的“诊断码”。在下表中,“行号”1到6之间的“诊断代码”2.3将不计算在内,因为前一行中没有“外部条件”(并且具有相同的“事件id”)。但是,“rownumber”8中的2.1被计算在内,因为“external\u condition”在前面的“rownumber”7中被标记。
有人知道在这种情况下该怎么办吗?

event_ID |  diagnosis_code | external_Condition |RowNumber
J1234567 |  2.3            | 0                  | 1
J1234567 |  2.3            | 0                  | 2
J1234567 |  2.3            | 0                  | 3
J1234567 |  2.3            | 0                  | 4
J1234567 |  2.3            | 0                  | 5
J1234567 |  2.3            | 0                  | 6
J1234567 |  NULL           | 1                  | 7
J1234567 |  2.1            | 0                  | 8
J1234567 |  NULL           | 1                  | 9
A1122357 |  2.3            | 0                  | 1
A1122357 |  2.2            | 0                  | 1
A1122357 |  2.2            | 0                  | 1
....
rta7y2nd

rta7y2nd1#

对于所有标记的计数:

SELECT COUNT(diagnosis_code) 
FROM 'Table_Name' 
WHERE external_Condition = 1

对于已标记的非重复计数:

SELECT COUNT(DISTINCT diagnosis_code) 
FROM 'Table_Name'
WHERE external_Condition = 1

相关问题