MySQL中去重 distinct 和 group by 是如何去重的

这篇具有很好参考价值的文章主要介绍了MySQL中去重 distinct 和 group by 是如何去重的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:测试数据

CREATE TABLE student (
   stu_no  VARCHAR(40) NOT NULL,
   name VARCHAR(100) NOT NULL
);
 
insert into  student values('1','name1');
insert into  student values('2','name2');
insert into  student values('3','name1');
insert into  student values('4','name2');
insert into  student values('5','name1');
 

 测试1:对name 字段进行过滤

SELECT DISTINCT `name` FROM student;

MySQL中去重 distinct 和 group by 是如何去重的

 测试2:对所有的字段进行去重。

SELECT DISTINCT * FROM student;

 MySQL中去重 distinct 和 group by 是如何去重的

对比测试1和测试2 发现,

distinct 可以对单一字段进行去重,当对所有的字段去重时,只有不同数据的每个字段完全一样的数据被去掉,其他只有一个字段重复的数据并没有变化,因此得出结论:

distinct主要是针对全部字段去重,即去掉完全一样的数据。、

测试3:

select stu_no,name from student group by name;
select stu_no,name from student group by stu_no;

MySQL中去重 distinct 和 group by 是如何去重的

MySQL中去重 distinct 和 group by 是如何去重的 

 

总结:

    相同:distinct和group by都可以用来去重
    不同之处,distinct针对全部字段去重,而group by可以针对全部字段中的单一字段去重。
    两者执行方式不同,distinct主要是对数据两两进行比较,需要遍历整个表。group by分组类似先建立索引再查索引,当数据量较大时,group by速度要优于distinct。
 文章来源地址https://www.toymoban.com/news/detail-470895.html

到了这里,关于MySQL中去重 distinct 和 group by 是如何去重的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql 数据库去重(distinct)

    有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段 distinct 这种方式会将全部内容存储在一

    2024年02月13日
    浏览(39)
  • Elasticsearch按某个字段去重-实现group by效果

    已知es中存储了一张学生课程信息宽表,里边包含有student_name、student_id、teacher_id、课程信息等字段。 现在根据学生姓名或者班级ID,得出学生所在班级的所有授课教师信息。  既然是明细宽表,里边的教师的信息必然是有重复的,因此我们需要查询teacher_id的集合并去重,对

    2024年02月12日
    浏览(46)
  • 【MySQL】根据多个字段查询数据进行去重的sql编写

    一、实现思路 根据四个字段进行数据去重的SQL编写可以使用GROUP BY和HAVING子句来实现。 场景一: 假设有一个名为 table1 的数据表,其中包含四个字段: field1 、 field2 、 field3 和 field4 。要求根据这四个字段进行数据去重。 可以使用以下SQL语句: 场景二: 上述SQL语句会返回所

    2024年02月15日
    浏览(56)
  • ChatGPT是如何教你视频去重的

    ​ 对于很多自媒体和视频剪辑从业者来说,视频去重是家常便饭了,去重有各种各样的方法和教程,但到底平台是如何识别去重的,哪些去重有效,又该选择怎样的去重方式,小编今天为替大家问了问万能的chatgpt,看看chatgpt是如何回答关于视频去重问题的!   问:有哪些对

    2023年04月17日
    浏览(37)
  • 【面试题】如何实现数组去重的?有几种方式?

     前端面试题库 ( 面试必备)              推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 通过两层循环对数组元素进行逐一比较,然后通过splice方法来删除重复的元素。此 方法对NaN是无法进行去重的 ,因为进行比较时

    2024年02月10日
    浏览(39)
  • 【flink番外篇】9、Flink Table API 支持的操作示例(6)- 表的聚合(group by、Distinct、GroupBy/Over Window Aggregation)操作

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月02日
    浏览(35)
  • mysql GROUP BY 怎么 order by 排序

    在 MySQL 中使用 GROUP BY 子句时,如果需要对结果进行排序,可以使用 ORDER BY 子句来对分组后的结果进行排序。 ORDER BY 子句应该放在 GROUP BY 子句之后,使用逗号来分隔需要排序的列,并在排序列后指定排序顺序。例如: 在这个例子中,SELECT 语句选择了表 table1 中的列 column1 和

    2024年02月16日
    浏览(58)
  • MySQL Group by 优化查询

      使用的是临时表,加文件排序(数据量小用内存排序) 注意:这里加的索引一般不会仅仅是group by后面的字段索引(大多数多少条件是一个以 该字段开头联合索引 ,方便使用覆盖索引或者索引下推)。如果该字段是一个varchar类型, 最好 加个int冗余字段,建立索引的字段,

    2024年02月05日
    浏览(46)
  • Mysql group by使用示例

    总数据: 索引情况:

    2024年02月11日
    浏览(37)
  • MySQL 中 Group By 的用法

    Group By 是一种 SQL 查询语句,常用于根据一个或多个列对查询结果进行分组。在 Group By 子句中指定的列将成为分组依据,而在 Select 子句中指定的列必须是聚合函数(例如 SUM、AVG、COUNT 等)或分组列。 Group By 的语法如下:  SELECT column_name(s) FROM table_name WHERE condition GROUP BY co

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包