当前位置: 首页 > 编程笔记 >

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

仉宪
2023-03-14
本文向大家介绍MySQL中Distinct和Group By语句的基本使用教程,包括了MySQL中Distinct和Group By语句的基本使用教程的使用技巧和注意事项,需要的朋友参考一下

MySQL Distinct 去掉查询结果重复记录
DISTINCT
使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录。
语法:

SELECT DISTINCT(column) FROM tb_name


例子:
假定 user 表有如下记录:

uid username
1 小李
2 小张
3 小李
4 小王
5 小李
6 小张

SQL 语句:
SELECT DISTINCT(username) FROM user
返回查询结果如下:

username
小李
小张
小王

提示
使用 DISTINCT 关键字去掉重复记录具有较大的局限性。DISTINCT() 只能包含一个字段且查询结果也只返回该字段而非数据完整记录(如上例所示)。
可以尝试使用如下语法:

SELECT DISTINCT(column),column1,column2,... FROM tb_name

该查询结果将返回列出的所有字段,但该查询往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 DISTINCT(column) 之前。
上面的例子如果要返回如下结果(这往往是期望中的):

uid username
1 小李
2 小张
3 小王

这时候就要用到 GROUP BY 关键字。

MySQL Group By 数据分组
GROUP BY
MySQL中 使用 GROUP BY 关键字用于对某个或某些字段查询分组,并返回重复记录的第一条。
语法:

SELECT column,... FROM tb_name GROUP BY column1,column2 ...

user 表记录如下:

uid username
1 小李
2 小张
3 小李
4 小王
5 小李
6 小张

对上面的 user 表做查询如下:

SELECT * FROM user GROUP BY username

返回查询结果如下:

uid username
1 小李
2 小张
3 小王

说明
GROUP BY 语法在 MySQL 数据库中的用法与其他数据库相差较大。对于标准 SQL 而言,GROUP BY 一定要结合聚合函数使用,而且选择的字段除了聚合函数外,还必须在 GROUP BY 中出现。但是在 MySQL 中扩展了 GROUP BY 的功能:
不加聚合函数的情况下,返回的结果是 GROUP BY 结果集中第一行,如上面例子所示。
GROUP BY 结合聚合函数的时候,选择的字段不必在 GROUP BY 中存在,MySQL 具有隐含字段的功能。
所以我们可以根据 MySQL 对 GROUP BY 的扩展特性,结合另外一些关键字如 ORDER BY 等,方便的得到想要的查询结果。
例子 2:

SELECT * FROM user GROUP BY username,uid

返回查询结果如下:

uid username
1 小李
3 小李
5 小李
2 小张
6 小张
4 小王
 类似资料:
  • 本文向大家介绍MySQL中UPDATE与DELETE语句的使用教程,包括了MySQL中UPDATE与DELETE语句的使用教程的使用技巧和注意事项,需要的朋友参考一下 UPDATE 更新 UPDATE SET 语法用于修改更新数据表中的数据。 语法: 该语法将数据表中符合 WHERE 条件的记录中的 column1 的值更新为 new_value1,column2 的值更新为 new_value2

  • 本文向大家介绍MySQL中join语句的基本使用教程及其字段对性能的影响,包括了MySQL中join语句的基本使用教程及其字段对性能的影响的使用技巧和注意事项,需要的朋友参考一下 join语句的基本使用 SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。 JOIN 通常与 ON 关键字搭配使用,基本语法如下: ... FROM table1 INNER|L

  • 本文向大家介绍MySQL中union和join语句使用区别的辨析教程,包括了MySQL中union和join语句使用区别的辨析教程的使用技巧和注意事项,需要的朋友参考一下 union和join是需要联合多张表时常见的关联词,具体概念我就不说了,想知道上网查就行,因为我也记不准确。 先说差别:union对两张表的操作是合并数据条数,等于是纵向的,要求是两张表字段必须是相同的(Schema of bo

  • 本文向大家介绍MySQL Select语句DISTINCT对于多列?,包括了MySQL Select语句DISTINCT对于多列?的使用技巧和注意事项,需要的朋友参考一下 要了解多列的MySQL select语句DISTINCT,让我们看一个示例并创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下 使用select语句显示表中的所有记录。查询如下 以下是输出 这是对多列

  • 基本语句 在上面两章我们介绍了GO的基本类型、标识符、函数和方法,这些都是编写程序的基础。在本章,我们将讲述GO的流程语句。有了这些,你就可以写出完整的程序了。 GO有以下几种程序流程结构: if-else 结构 switch 结构 for (range) 结构 GO只有一个for结构,没有while结构。 select 结构,用于 channel 的选择 Go 完全省略了 if、switch 和

  • 现在,同学们已经使用了最基本的OpenFOAM的类型(如Info),在OpenFOAM的环境下编写了输出hello CFD的代码。OpenFOAM中的内置类型非常多,比如: volScalarField体标量场:比如CFD中定义在网格上的温度场; volVectirField体矢量场:比如CFD中定义在网格上的速度场; fvScalarMatrix标量矩阵:比如CFD中离散湍流动能生成的稀疏线性系