distinct 与group by 去重
mysql中常用去重复数据的方法是使用 distinct 或者group by ,以上2种均能实现,但2者也有不同的地方。
distinct 特点:
如:select distinct name, sex,from tb_students 这个sql的语法中,查询 tb_students 表中 name, sex,并去除名字和性别都重复的学生:
1、distinct 只能放在查询字段的最前面,不能放在查询字段的中间或者后面。
备注:select sex,distinct name from tb_students 这种写法是错误的,distinct 只能写在所有查询字段的前面
2、distinct 对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 distinct 后面连接的单个字段重复的数据。
备注:也就是 distinct 关键字对 name, sex 都起作用,去重姓名、性别完全一样的学生,如果姓名相同、性别不同是不会去重的。
3、要查询多个字段,但只针对一个字段去重,使用distinct去重的话是无法实现的。
group by 特点:
1、一般与聚类函数使用(如count()/sum()等),也可单独使用。
2、group by 也对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 group by后面连接的单个字段重复的数据。
3、查询的字段与group by 后面分组的字段没有限制。
特别说明:在oracle中使用group by时,查询的字段必须是group by 分组的字段和聚类函数。如select name,sex from tb_students group by name这个sql
语法在oracle中是错误的,因为sex 不在group by 分组后面;但在mysql中是支持的。
最新文章
- 上传文件swfUploadConfig.js
- Laravel学习笔记(四)数据库 数据库迁移案例
- java jstack命令详解
- Java Code Examples for PhantomJSDriverService
- 配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境
- 关于在mac 配置eclipse c开发
- 重新安装sqlyog时备份数据库链接列表的方法
- Unix/Linux 关机命令
- 自由的Debian
- java中的equals()方法
- elasticsearch 索引优化
- ContentResolver,ContentProvider,ContentObserver使用记录
- 线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
- PHP artisan migrate 报错显示 could not find driver ,怎么办?
- 【Java】利用注解和反射实现一个";低配版";的依赖注入
- JMeter实现唯一参数生成不重复时间戳
- vue 上拉加载自定义组件,超好用哦
- linux 如何释放缓存
- Cacti日志时区问题
- rbac 权限分配, 基于formset实现,批量增加
热门文章
- C# Winform 带水印提示输入框
- 从n个数里面找最大的两个数理论最少需要比较
- VSCode远程连接Docker
- (十)zabbix监控TCP状态
- (八)zabbix获取到的数值自定义单位
- FutureWarning: get_value is deprecated and will be removed in a future release. Please use .at[] or .iat[] accessors instead print(labels_df.get_value(patients,col=1))
- App支付宝登录授权
- commons-codec-1.9.jar 是做什么用的?
- Canvas实用库Fabric.js使用手册
- C# 计算小数