如何计算来自同一ID的不同值?

时间:2019-05-29 15:45:33

标签: sql sql-server

如果每个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种症状)。

3 个答案:

答案 0 :(得分:4)

您需要distinctselect语句:

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

提琴:http://sqlfiddle.com/#!18/48dde/2/0

答案 2 :(得分:-1)

尝试一下:

SELECT ID, Symptom
FROM MY_TABLE
GROUP BY 1,2