前言:
而今小伙伴们对“mysql的去重”可能比较讲究,大家都需要知道一些“mysql的去重”的相关知识。那么小编在网摘上搜集了一些有关“mysql的去重””的相关资讯,希望我们能喜欢,咱们一起来了解一下吧!1、数据去重的应用场景:
不同角色的数据,剔除同一角色的重复数据,达到过滤数据的目的。
2、去重的几种方式
方式一:使用关键字distinct
注意:
a:count(distinct name)返回不重复记录的条数
b:必须放在select后,查询列的开始
c:只能在select语句中使用,不能在 insert, delete, update语句中使用
d:不能与all同时使用
e:distinct支持单列、多列的去重
f:执行效率要略高于group by去重
模拟数据:后面演示均参照这个模拟数据。
SELECT DISTINCT university from user_profile //distinct单列查询
单列查询结果:查询结果剔除了重复的北京大学、四川大学记录。
SELECT DISTINCT university,gpa from user_profile //distinct多列查询
多列查询结果:
方式二:利用group by分组来实现
注意:
a:group by 语句是根据一个或多个列对结果进行分组
b:group by 对查询结果进行了分组,自动将重复的项归结为一组
c:若需要select分组后的每一列,新版本数据库需要修改sql_mode,否则会报错
单列查询:
SELECT university from user_profile GROUP BY university //group by单列查询
单列查询结果:
多列查询:
SELECT university,gpa from user_profile GROUP BY university,gpa //group by多列查询
多列查询结果
方式三:利用窗口函数row_number(),这儿则不演示了,前面文章提到过。
注意:
a:row_number()核心是利用 partition by对数据进行分组。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。