我有一些只有3个属性的数据
名 疾病 是/否
我对一组病毒感染了多少次的频率感兴趣,无论是一次,两次,三次。
所以我最终得到了一张像这样的表
Frequency - Count
F1 300
F2 121921
F3 121
F4 2
F5+ 2323
这是我试写的一些代码。我坚持的一点是如何告诉SQL当一个人没有接触到病毒时给他们一个0分,如果它曾经是1,那么两次是2.
SELECT
CASE WHEN F0 = 0 THEN 'F0'
WHEN F1 = 1 THEN 'F1'
WHEN F2 = 1 THEN 'F2'
wHEN F3 = 3 THEN 'F3'
WHEN F4 = 4 THEN 'F4'
WHEN F5 >= 5 THEN 'F5
END AS Virus_Frequency,
COUNT(*) AS VIRUS_COUNT
FROM
(
SELECT
distinct name,
SUM(CASE WHEN illness in (43598435, 24343, 45413, 2455, 54574511, 2074123, 34351153) THEN 0 END) AS F0,