其实distinct和group by 作用是一样的,当重复率不高的适合distinct效率高点,重复率高那就是group by效率更高,推荐使用group by,因为distinct只能返回他的目标字段,而无法返回其他字段。
distinct我们一般是用来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,distinct后面跟多个字段,表示这几个字段的数据组合起来不重复。
对于单个字段去重
select DISTINCT cpgroup.user_id from cp_group cpgroup;
对于多个字段联合去重
表示这两个字段数据联合在一起不重复
select DISTINCT cpgroup.user_id, cpgroup.cp_user_id
from cp_group cpgroup;
注意事项
- 是用了distinct就不能在是用 select *
- distinct必须放在查询字段的开头