你这题目问的很奇怪。如果你想分组就用group by 如果你想去掉重复项就用distinct 但是你要保留ID,去掉重复项。不理解是什么意思。
1 小马 男 23
4 小马 男 23
7 小马 男 23
对于系统来说这根本就不是同一个数据,除非你忽略ID,这样可以distinct。就像一个班级有3个同名的同学一样。学号不同,就表示是不同的人。除非你忽略学号,这样有3个小马,就可以认为是一条记录重复了3次。
select * from table a where exists
(select 1 from table group by name,sex,age having min(id)=a.id)