SQL单个或分组去重复查询方法

  

    以下是用来测试的数据:

表名:t_Demo

ID Name Project Grade
1 小明 数学 59
1 小明 语文 59
1 小明 英语 59
2 小红 数学 100
2 小红 语文 99
3 小白 数学 100
3 小白 语文 90
3 小白 英语 80
3 小白 政治 70
3 小白 历史 60
4 小黑 数学 89
4 小黑 语文 89
4 小黑 英语 90

1.单个字段去重复查询

    我们现在想获取以上表格中ID字段信息表,并且去掉重复的数值,也就是说我们现在想要获取表中ID有多少。

select id from t_Demo group by id

查询结果:

ID
1
2
3
4

2.多字段去重复查询

    如果需要获取ID和Name去掉重复值信息表,相当于得到现在这个表格中有多少人。

select id,Name from t_Demo group by id,Name

查询结果:

ID Name
1 小明
2 小红
3 小白
4 小黑

3.多字段去重复并且获取重复的数目

    现在我们需要获取表中每个人所有成绩数目

select ID,Name,count(distinct Project) as num from t_Demo group by ID,Name

查询结果:

ID
Name num
1 小明 3
2 小红 2
3 小白 5
4 小黑 3