MySQL中Distinct和Group By语句的基本使用教程
作者:goldensun 发布时间:2024-01-26 09:51:53
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 小王


猜你喜欢
- 一、嵌套路由(配置好父路由component后,在父路由下面添加children属性来配置这个父路由的子路由)需要注意的是:父组件中的<
- “博客就像一本书”这话其实几个月前深圳FB时就有扯到,这也不是什么新概念,也许本身就应该是这样。打个比方,当你拿到一本未看过的书时,理论上你
- 使用Access数据库生成申报数据与读入数据的实例方法:示例:Sub Mwrite()On Error GoTo thiserrDim rs
- 感想我们在用jupyter notebook的时候,经常需要可视化一些东西,尤其是一些图像,我这里给个sample code环境opencv
- 从那起,我已经对这些方法做了大量的研究,并且已经在很多场合使用他们。在很多任务中,他们被证明是非常有用的(特别关于结构的抽象 DOM 选择器
- 前一段时间导师叫我写一个批处理的小程序,就是循环修改辐射传输模型软件MODTRAN的输入参数,然后运行MODTRAN软件进行计算,输出需要的
- 假设我们使用 Angular Universal 开发一个服务器端渲染的 Angular 应用,这个应用会消费一个第三方的 Restful
- Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使
- 使用iframe嵌入网页,页面可自适应在项目中遇到要嵌入第三方网页的需求,因为没有同第三方页面交互的需求,只需展示即可,所以最终决定使用 i
- username1: "(^[a-zA-Z]{1}([a-zA-Z0-9_]){4,14}|(^[\u4E00-\uFA29]{1
- 我们先来看一个题目:<script> console.log(typeof a)//undefined var a='l
- 1. 初始化项目// ① npm i -g @vue/cli// ② vue create my-project// ③ npm insta
- 主要有以下区别:1、MySQL默认采用的是MyISAM。2、MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默
- 1、类的定义创建一个rectangle.py文件,并在该文件中定义一个Rectangle类。在该类中,__init__表示构造方法。其中,s
- 前言如题目所述,又是花费了两天的时间实现了该功能,本来今天下午有些心灰意冷,打算放弃嵌入到Scoll Area中的想法,但最后还是心里一紧,
- 一个完整的数据挖掘模型,最后都要进行模型评估,对于二分类来说,AUC,ROC这两个指标用到最多,所以 利用sklearn里面相应的函数进行模
- 可变参数可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如def testArg(*arg)你可以传入任意多个元
- 本文实例讲述了Python下实现的RSA加密/解密及签名/验证功能。分享给大家供大家参考,具体如下:原文是py2环境,而我的环境是py3,所
- Kettle简介Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extracti
- 一、目标之前无意中看到有某位博主写过人像动漫化这样的文章,看着还挺好玩,所以我也想尝试一下。利用百度智能云中的人工智能,对图片进行处理达到人