MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
类别:数据库 浏览量:2206
时间:2016-4-27 MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项一、下列语句在MySql中是合规的
select count(1),task_type,status from action where biz_date='20141014' group by status
select count(1),task_type from action where biz_date='20141014' group by status
二、使用时易出现的问题
1、实例数据
mysql> select * from test;
+----+-------+------+-------+
| id | name | age | class |
+----+-------+------+-------+
| 1 | qiu | 22 | 1 |
| 2 | liu | 42 | 1 |
| 4 | zheng | 20 | 2 |
| 3 | qian | 20 | 2 |
| 0 | wang | 11 | 3 |
| 6 | li | 33 | 3 |
+----+-------+------+-------+
6 rows in set (0.00 sec)
2、找到每个class里面的最大的age的基本信息
如下的sql语句,则输出结果不准确
mysql> select id,name,max(age),class from test group by class;
+----+-------+----------+-------+
| id | name | max(age) | class |
+----+-------+----------+-------+
| 1 | qiu | 42 | 1 |
| 4 | zheng | 20 | 2 |
| 0 | wang | 33 | 3 |
+----+-------+----------+-------+
3 rows in set (0.00 sec)
备注
虽然找到的age是最大的age,但是与之匹配的用户信息却不是真实的信息
原因
如果 id,name 不能唯一确定的话,mysql会随机选一行做为值。
三、使用是注意事项
1、这个写法不标准, 因为假如没group的字段如果有多个值, 可能导致这个字段会有不确定的值,且不利于数据库移植
2、假如可以确定这个字段都是重复的值(譬如多表联接), 那就没有这方面的困扰,反而会简化SQL语句,也有可能会提高性能,可以推荐这种方式查询
例如
select A.id, B.desc, B.XXX, B.YYY SUM(A.AMT)
FROM A
join b on a.id=b.id
where a.id=? and b.xxx=?
group a.id
标签:mysql
您可能感兴趣
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- mysql创建存储过程的代码(MySQL修改存储过程的详细步骤)
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- mysql学习之索引介绍及其原理(MySQL学习教程之聚簇索引)
- MySQL配置文件my.cnf的介绍
- mysqltimestamp如何比较(为什么MySQL 使用timestamp可以无视时区问题.)
- mysql导出数据的方法
- 阿里云的自带mysql怎么开启(阿里云云服务器mysql密码找回的方法)
- mysql创建数据库教程(MySQL创建数据库并支持中文字符的操作方法)
- docker怎样安装mysql8(docker-compose安装db2数据库操作)
- mysql删除的delete怎么找回(MySQL Delete 删数据后磁盘空间未释放的原因)
- mysql查询count很慢(MySQL COUNT函数的使用与优化)
- phpmysql完全学习手册教程(Windows下搭建PHP开发环境Apache+PHP+MySQL)
- centos如何安装mysql8.0版本(Centos7下安装MySQL8.0.23的步骤小白入门级别)
- mysql中怎么删除整张表(MySQL如何优雅的删除大表实例详解)
- mysql 索引表空间(MySQL如何构建数据表索引)
- 美国倒掉数十万加仑牛奶 上热搜第一,这一幕似曾相识(美国倒掉数十万加仑牛奶)
- 深度 倒牛奶 这一幕为何又在美国上演(深度倒牛奶)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
热门推荐
- idea连接不上docker(IDEA使用Docker插件远程部署项目到云服务器的方法步骤)
- lnmp安装php(LNMP系列教程之二 删除站点及域名绑定)
- mysqldump导入导出(MySQL官方导出工具mysqlpump的使用)
- 如何让mysql强制设置复杂的密码
- response的contentType的类型值
- react怎么使用父组件(关于antd tree和父子组件之间的传值问题react 总结)
- mysql对大表千万级如何优化(MySQL 大表的count优化实现)
- asp.net如何实现word文档在线预览
- jquery如何实现倒计时
- nginx反向代理及原理(传说中的反向代理,Nginx+Apache软件配置Web服务器)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9