如果每个ID重复一些,如何计算列中的不同值?
我已经尝试了COUNT,DISTINCT,CASE和其他所有功能,但是我无法为每个ID计算不同的值。我有这样一张桌子。
ID Symptom
1 Headache
1 Headache
1 Hematuria
1 Leg pain
1 Headache
2 Cough
2 Headache
2 Cough
3 Cough
3 Cough
3 Cough
我想获得类似的东西。
ID Symptom
1 Headache
1 Hematuria
1 Leg pain
2 Cough
2 Headache
3 Cough
还是我如何获得总数?像有5种不同的症状,但没有11种症状(如果使用DISTINCT,我将得到4种症状)。
答案 0 :(得分:4)
您需要distinct
和select
语句:
select distinct id, Symptom
from table t;
如果您需要唯一计数,请在count()
内使用它:
select id, count(distinct Symptom)
from table t
group by id;
答案 1 :(得分:0)
只需按这些字段分组:
SELECT ID, Symptom
FROM Symptoms
GROUP BY ID, Symptom
答案 2 :(得分:-1)
尝试一下:
SELECT ID, Symptom
FROM MY_TABLE
GROUP BY 1,2