`

SQL distinct 和group by

阅读更多
聚合函数
AVG
MAX
MIN
SUM
COUNT


distinct和Group by 区别:
distinct只是将重复的行从结果中出去;
group by是按指定的列分组,一般这时在select中会用到聚合函数。
distinct是把不同的记录显示出来。
group by是在查询时先把纪录按照类别分出来再查询。
group by 必须在查询结果中包含一个聚集函数,而distinct不用。

假定 Table 表有三列,
id, key, value
其中 id是主键,不能重复,key和value可能有重复记录


使用distinct去重复:
select distinct key,value
from table
不能显示主键。


使用group by 去重复
select count(*) from table A,
(select key,value, min(id) PID
from table group by key,value
) B
where A.id=b.PID

分享到:
评论

相关推荐

    Mysql中distinct与group by的去重方面的区别

    在MySQL数据库中,`DISTINCT` 和 `GROUP BY` 是两个非常重要的SQL关键字,它们都可以用来处理数据的去重问题,但在实际应用中,两者的使用场景和效果有所差异。 首先,`DISTINCT` 关键字的主要作用是去除查询结果中...

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 ...SQL Group By SQL Having SQL ucase() SQL lcase() SQL mid() SQL len() SQL round() SQL now() SQL format() SQL 总结 SQL 快速索引 SQL 总结

    分析MySQL中优化distinct的技巧

    总结来说,优化`DISTINCT`操作的关键在于巧妙地利用索引和SQL改写,减少全索引扫描,以及根据实际业务场景选择合适的索引结构。通过这些方法,可以显著提升大表查询的效率,减轻服务器压力。对于大型数据库系统,...

    MySQL中distinct与group by语句的一些比较及用法讲解

    在MySQL数据库中,`DISTINCT` 和 `GROUP BY` 是两种用于数据去重和分组统计的SQL语句,它们虽然都可以帮助我们处理重复数据,但有着不同的应用场景和执行机制。 1. `DISTINCT` 关键字: - `DISTINCT` 主要用于去除...

    SQL语言中GROUP BY子句的应用剖析.pdf

    SQL语言中GROUP BY子句的应用剖析 GROUP BY子句是SQL语言中一个强大的工具,用于对数据进行分组并进行汇总统计。通过对GROUP BY子句的执行过程分析,阐述了使用GROUP BY子句对数据进行分组的意义,并进一步剖析了...

    MySQL中Distinct和Group By语句的基本使用教程

    在MySQL数据库中,`DISTINCT`和`GROUP BY`是两个非常重要的查询语句,它们在处理数据去重和分组方面发挥着关键作用...在编写SQL查询时,应根据实际需求灵活运用`DISTINCT`和`GROUP BY`,以确保获得准确且有意义的数据。

    详解SQL中Group By的用法

    在SQL中,`GROUP BY`语句是数据分析和报表生成的核心工具之一,它允许我们根据一个或多个列的值对数据进行分组,并且通常与聚合函数一起使用,以对每个组进行计算。以下是关于`GROUP BY`用法的详细说明: 1. **基本...

    LINQ to SQL手册

    6. **Group By/Having**:`Group By` 将数据按指定字段分组,`Having` 则用于在分组后过滤数据,类似 `WHERE` 但针对的是分组后的结果。 7. **Exists/In/Any/All/Contains**:这些谓词用于检查条件的存在性,如 `...

    使用Distinct查询.rar

    2.2 DISTINCT与GROUP BY和聚合函数 `DISTINCT`通常与`GROUP BY`和聚合函数(如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`)一起使用,用于计算每个分组的唯一值。例如,计算每个部门的员工数量: ```sql SELECT ...

    group by 语法大全,内附列子

    在数据库查询语言SQL中,`GROUP BY`语句是一种非常强大的工具,它能够帮助我们对数据进行分组处理,以便更好地进行数据分析和汇总。下面将详细介绍`GROUP BY`的基本语法、常用场景以及如何与其他SQL语句如聚合函数、...

    分组查询GROUP BY的使用与SQL执行顺序的讲解

    分组查询GROUP BY是SQL语言中用于对查询结果进行数据分组的关键子句,它允许我们将数据按照一个或多个列的值进行聚合。在使用GROUP BY时,有一些基本规则需要遵循: 1. GROUP BY子句可以包含任意数量的列,这意味着...

    oracle中使用group by优化distinct

    2. **使用`GROUP BY ROLLUP/CUBE/GROUPING SETS`**:这些高级`GROUP BY`技术可以组合不同的分组,以实现类似于`DISTINCT`的效果。例如,如果所有字段都需去重,可以使用`GROUP BY`加上所有字段,然后利用`ROLLUP`或`...

    MySQL中distinct语句的基本原理及其与group by的比较

    在MySQL数据库中,`DISTINCT`和`GROUP BY`都是用于数据去重和分组的SQL语句,但它们有着不同的应用场景和优化策略。本文将深入探讨`DISTINCT`语句的基本原理,并与`GROUP BY`进行比较。 首先,`DISTINCT`关键字用于...

    group by用法.doc

    理解并熟练运用`GROUP BY`和相关的聚合函数、`HAVING`、`WITH ROLLUP`和`WITH CUBE`,对于进行复杂的SQL数据分析和报表生成至关重要。这些技巧可以帮助你更有效地从数据库中提取信息,满足业务分析的需求。

    distinct的使用.docx

    在更复杂的查询中,`DISTINCT`可以配合`WHERE`子句、`JOIN`操作以及`GROUP BY`来进一步过滤和分组数据。例如,如果你想找出每个部门的唯一职位,可以这样做: ```sql SELECT department, DISTINCT job_title FROM ...

Global site tag (gtag.js) - Google Analytics