您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> sql server教程 >> 正文

根据某一字段去重后获取多个字段内容的sql语句

作者:佚名    责任编辑:admin    更新时间:2022-06-22

今天遇到一个问题,客户要求根据id字段去重后返回所有字段的内容。本来想用多重查询然后用in来完成嵌套,但是考虑效率问题还是用distinct和min + group by吧。

原数据表内容:

id name

1   a

2  b

3   c

4   c

5  b

用户需要获取以下数据结果集:

id name

1   a

2  b

3   c

有两种方式可以达到效果:

一、使用distinct:select *, count(distinct name) from table group by name

二、使用min + group by:select name,min(id) id from table group by name

以上两种方法请根据情况选用。因为group by需要枚举几乎所有的字段,所以在字段特别多的时候不建议使用。distinct方法相对简便,但是会多出一个字段,不是很干净。

关键词:查询  字段  去重  distinct  group by