首页
学习
活动
专区
圈层
工具
发布

SQL去重是用DISTINCT好,还是GROUP BY好?

我们知道DISTINCT可以去掉重复数据,GROUP BY在分组后也会去掉重复数据,那这两个关键字在去掉重复数据时的效率,究竟谁会更高一点?...2.GROUP BY与DISTINCT去掉重复数据的对比 GROUP BY与DISTINCT类似,经常会有一些针对这两个哪个效率高的争议,今天我们就将这两个在不同重复数据量的效率作下对比。...FROM sales.Temp_Salesorder GROUP BY UnitPrice; 将上述两条语句一起执行,结果如下: ?...可以看出两条语句对应的执行时间GROUP BY比DISTINCT效率高一点点。...作者对上述语句同时执行多次,针对重复量多的UnitPrice,GROUP BY总的处理效率比DISTINCT高一点点,但是针对重复量低的SalesOrderDetailID,DISTINCT就比GROUP

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL中distinct和group by去重的区别

    MySQL中distinct和group by去重的区别 在MySQL中,我们经常需要对查询结果进行去重,而DISTINCT和GROUP BY是实现这一功能的两种常见方法。...使用 DISTINCT的基本语法如下: SELECT DISTINCT column_name, column_name FROM table_name; 单列去重 根据aid(文章ID)去重: SQL...代码: SELECT DISTINCT aid FROM pageview; 多列去重 根据aid和uid联合去重: SQL代码: SELECT DISTINCT aid, uid FROM pageview...; 聚合函数+去重 使用DISTINCT+聚合函数计算aid去重之后的总条数: SQL代码: SELECT COUNT(DISTINCT aid) FROM pageview; GROUP BY使用 GROUP...: SQL代码: SELECT aid, COUNT(*) FROM pageview GROUP BY aid; distinct和group by的区别 查询结果集不同 使用DISTINCT去重时,

    49200

    面试官:GROUP BY和DISTINCT有什么区别?

    在 MySQL 中,GROUP BY 和 DISTINCT 都是用来处理查询结果中的重复数据,并且在官方的描述文档中也可以看出:在大多数情况下 DISTINCT 是特殊的 GROUP BY,如下图所示:...例如以下 SQL:SELECT DISTINCT column1, column2 FROM table_name;工作机制:DISTINCT 会对整个结果集进行去重,即只要结果集中的某一行与另一行完全相同...例如以下 SQL:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;工作机制:GROUP BY 将数据按指定的列进行分组,每个组返回一行数据...应用场景不同:DISTINCT 更适合单纯的去重需求,GROUP BY 更适合分组统计需求。...性能略有不同:如果去重的字段有索引,那么 GROUP BY 和 DISTINCT 都可以使用索引,此情况它们的性能是相同的;而当去重的字段没有索引时,DISTINCT 的性能就会高于 GROUP BY,

    57110

    面试官:GROUP BY和DISTINCT有什么区别?

    在 MySQL 中,GROUP BY 和 DISTINCT 都是用来处理查询结果中的重复数据,并且在官方的描述文档中也可以看出:在大多数情况下 DISTINCT 是特殊的 GROUP BY,如下图所示:...例如以下 SQL: SELECT DISTINCT column1, column2 FROM table_name; 工作机制:DISTINCT 会对整个结果集进行去重,即只要结果集中的某一行与另一行完全相同...例如以下 SQL: SELECT column1, COUNT(*) FROM table_name GROUP BY column1; 工作机制:GROUP BY 将数据按指定的列进行分组,每个组返回一行数据...应用场景不同:DISTINCT 更适合单纯的去重需求,GROUP BY 更适合分组统计需求。...性能略有不同:如果去重的字段有索引,那么 GROUP BY 和 DISTINCT 都可以使用索引,此情况它们的性能是相同的;而当去重的字段没有索引时,DISTINCT 的性能就会高于 GROUP BY,

    86520

    SQL优化终于干掉了“distinct”

    SQL优化之多表联合查询干掉“distinct”去重关键字 一、优化目的 二、优化之前的sql长这样 三、DISTINCT关键字的用法 四、谈:如何优化distinct的sql 五、distinct真的和...总结有以下比较重要的几点: 1、distinct与group by几乎等价; 2、distinct的相关优化与group by的查询优化方法是等价的; 五、distinct真的和group by等价吗?...那么我们优化distinct就变向的去优化group by了(我优化前的sql并未使用group by所以谈不上优化group by,只能说是把distinct的复杂sql改造成group by 的sql...现在需要做的就是把distinct改造成group by的sql语法的写法。 六、优化后的sql长啥样? 怎么样,改造后的sql,是不是还挺清爽的。...七、总结 对于本人而言学到了: 1、distinct与group by几乎等价; 2、distinct的相关优化与group by的查询优化方法是等价的; 3、如果distinct的不能让sql最优化,

    4.2K31

    SQL 简介:如何使用 SQL SELECT 和 SELECT DISTINCT

    结构化查询语言 (SQL) 是用于与关系数据库通信的标准编程语言。由于业务中的数据使用量以惊人的速度增长,因此对了解 SQL、关系数据库和数据管理的人员的需求也在上升。...SQL 是一种具有自己语法的语言,由语句、子句和其他代码片段(例如建立用于限制查询的参数的运算符)组成。...SELECT 语句是 SQL 中最常见的操作,因为它指定要从数据库返回哪些数据。SELECT 语句及其意义SELECT 语句在 SQL 中经常称为数据查询语言 (DQL)。...SQL WHERE 命令指定要检索的行。通过...分组。SQL GROUP BY 命令对共享属性的行进行分组,以便将聚合函数应用于每个组。拥有。...SQL HAVING 命令在 GROUP BY 子句定义的组中选择特定特征。作为。SQL AS 命令为临时重命名表或列提供了一个别名。命令。

    2.2K00
    领券