• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql中group by与having合用注意事项分享

mysql中group by与having合用注意事项分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql having,mysql having用法,mysql中having的用法,mysql having count,mysql中having等相关知识,希望本文的分享对您有所帮助

group by函数应该的使用应该是SELECT 列表中指定的每一列也必须出现在 GROUP BY 子句中,除非这列是用于聚合函数,但是今天帮同事调试一个mysql中的group by函数,让我大跌眼镜,当时感觉不可思议,然后回来做了个简化版试验,试验过程如下:

mysql表结构

插入数据

group by 查询语句

在本试验中,一共select id,count(1),aa,结果group by按照规则,除了聚合函数(count(1))外,其他两列(id,aa)都应该包含在group by中,可是试验只是包含了id。

对试验结果的说明
1、包含在group by后面的id列的count(1)统计数据为正确的
2、按照正常思维,aa的数据不能展示出来,可是mysql选择了展示表中aa数据的第一条
3、上述2也是个人猜测,暂时未查到官方相关说明

mysql group by having 用法

group by就是按照不同的字段进行分组,数值可以实现汇总

例如数据库中有A表,包括学生,学科,成绩三个字段
数据库结构为
学生 学科 成绩
张三 语文 80
张三 数学 100
李四 语文 70
李四 数学 80
李四 英语 80

那么
select 学生,sum(成绩) from A group by 学生;
得到如下结果

学生 成绩
张三 180
李四 230

==============================================================

如果考虑having
语句写成:
select 学生,sum(成绩) from A group by 学生 having 成绩=80;
得到结果就是这样的

学生 成绩
张三 80
李四 160

用having比 JOIN ON 相对好理解一些,简单一些。

mysql中group by having 用法需要注意的事项:

GROUP BY:

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by后面。

比如:

这样sql语句会报错,必须写成:

HAVING

把 HAVING 加入 SQL 的原因是,WHERE 无法应用于合计函数,而如果没有 HAVING,就无法测试结果条件。

having通常和group by联合使用.

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Mysql中order by、group by、having的区别深入分析
  • MySql中having字句对组记录进行筛选使用说明
  • MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究
  • MySQL无GROUP BY直接HAVING返回空的问题分析
  • mysql中group by与having合用注意事项分享

相关文章

  • 2018-12-05ORACLE常见错误代码的分析与解决(二)
  • 2017-05-11MySQL关闭过程详解和安全关闭MySQL的方法
  • 2018-12-05SQL Server 的 SQL 语句导入导出大全
  • 2018-12-05MYSQL索引建立需要注意以下几点细节
  • 2017-05-11批量杀死MySQL连接的四种方法详解
  • 2018-12-05在Win下mysql备份恢复命令
  • 2018-12-05详细介绍MySQL创建带特殊字符的数据库代码案例
  • 2018-12-05Win2003服务器安装及设置教程 MySQL安全设置图文教程
  • 2018-12-05MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据_MySQL
  • 2017-05-11mysql_connect(): Connection using old (pre-4.1.1) authentication protocol refused

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Ubuntu 设置开放 MySQL 服务远程访问教程
    • 有关事件分析内容的文章推荐
    • Mysql数据库中varchar类型转化为int类型的方法介绍
    • mysql 临时表 cann't reopen解决方案
    • 用 INNER JOIN语法联接多个表建记录集
    • 关于mysql explain中key_len的计算方法讲解
    • mysql 函数之与GROUP BY子句同时使用的函数
    • MySQL跟踪SQL执行之开启慢查询日志具体介绍
    • Windows Oracle常见服务介绍
    • 图片上的是mysql哪一种可视化工具?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有