mysql 分组数据_MySQL基础之分组数据
分组允许把数据分为多个逻辑组, 以便能对每个组进行聚集计算
创建分组
分组是在SELECT语句的GROUP BY子句中建立的。
MariaDB [crashcourse]> SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BYvend_id;+---------+-----------+
| vend_id | num_prods |
+---------+-----------+
| 1001 | 3 |
| 1002 | 2 |
| 1003 | 7 |
| 1005 | 2 |
+---------+-----------+
4 rows in set (0.001sec)
MariaDB[crashcourse]>
因为使用了GROUP BY, 就不必指定了要计算和估值的每个组了。系统会自动完成。GROUP BY子句指示MySQL分组数据, 然后对每个组而不是整个结果集进行聚集。
在具体使用GROUP BY子句前, 需要知道一些重要的规定
GROUP BY子句可以包含任意数目的列
如果在GROUP BY子句中嵌套了分组, 数据将在最后规定的分组上进行汇总
GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式, 则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
除聚集计算语句外, SELECT语句中的每个列都必须在GROUP BY子句中给出
如果分组列中具有NULL值, 则NULL将作为一个分组返回。如果列中有多行NULL, 他们将分为一组
GROUP BY子句必须出现在WHERE子句之后, ORDER BY之前。
过滤分组
MySQL允许过滤分组, 规定包括哪些分组、排除哪些分组。
MySQL使用HAVING来进行过滤分组
HAVING与WHERE非常相似, 只是WHERE子句过滤的是指定的行而不是分组。事实上, WHERE没有分组的概念。而HAVING可以过滤分组
MariaDB [crashcourse]> SELECT cust_id, COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >=2;+---------+--------+
| cust_id | orders |
+---------+--------+
| 10001 | 2 |
+---------+--------+
1 row in set (0.002sec)
MariaDB[crashcourse]>
WHERE与HAVING的区别:
WHERE在数据分组前进行过滤, 而HAVING在数据分组后进行过滤。这是一个重要的区别。WHERE排序的行不包括在分组中, 这可能会改变计算值, 从而影响HAVING子句中基于这些值过滤的分组
分组和排序
ORDER BY与GROUP BY之间的差别
一般在使用GROUP BY子句时, 应该也给出ORDER BY子句
SELECT子句顺序
在SELECT子句中必须遵循如下次数
mysql 分组数据_MySQL基础之分组数据相关推荐
- ci mysql操作_MySQL基础篇/第3篇:MySQL基本操作语句.md · icanci/MySQL-Review - Gitee.com...
### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...
- mysql谓词演算_MySQL基础知识
一.了解MySQL 1.什么是数据库? 数据库是一种以某种有组织的方式存储的数据集合. 2.模式(schema):关于数据库和表的布局及特性的信息. 3.列:正确的将数据分解为多个列极为重要.通过把它 ...
- mysql〉_MySql 基础知识-常用命令及sql语句
一.常用mysql命令行命令 1,启动mysql服务 net start mysql. 停止mysql服务 net stop mysql 2,netstart -na|findstr 3306查看被监 ...
- 学好mysql教材_MySQL基础学习
开始学习MySQL了,在几本经典的教材和课程之间纠结了一段时间,至于选的课到底适不适合我得等到后期才能反馈了.ps:OneNote做笔记非常棒! ##mysql服务的登录和退出 方式一:计算机-右击管 ...
- mysql军刀_mysql基础操作
登陆mysql命令行 mysql -h192.168.1.110 -uroot -p 查看所有数据库 show databases; 使用mysql数据库 use mysql; 如果数据库mysql存 ...
- java mysql 变量_MySQL基础_变量
一. 系统变量: 变量由系统提供的,不用自定义,又分为全局变量和会话变量. 1. 全局变量 作用域:针对于所有会话(连接)有效,但不能跨重启 #查看所有全局变量 SHOW GLOBAL VARIABL ...
- mysql查询_MySQL基础,查询语句详解
使用 [GROUP BY ] [HAVING ] 进行分组查询(示例结果如图按顺序) 新增分组字段 ALTER TABLE study_1 ADD study_group int(11); 为原有的数 ...
- mysql基础和高级整理_MySQL基础笔记整理
MySQL安装和启动 Windows下安装和启动服务 安装 1 在MySQL官网下载zip文件, 2 在任意位置保存解压.这里在E盘创建MySQL目录 E:\MySQL\ 3 E:\Monkey\my ...
- mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...
从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...
最新文章
- git2.29.2.2怎么安装_制作Win10安装U盘时install.wim大于4G怎么办?
- maven junit scope test坑
- 2017.8.30 elasticsearch-sql的安装与使用
- Linux进程和计划任务管理(详细图例)
- React开发(198):需要加个{}
- Inception网络 运行在Cifar10 测试集87.88% Tensorflow 2.1 小白从代码实践中 理解
- [Day14]Eclipse高级、类与接口作为参数返回值
- php larve,封装composer包,实现thinkphp、larverl、yii框架中使用(使用框架实现回调方法)...
- 由于连接方在一段时间后没有正确答复或连接的主机_新风换气机使用效果不佳,为何?掌握正确使用方法就好了...
- Linux中如何恢复rm命令误删除的文件之extundelete编译安装及使用
- [转]vs2005(c#)水晶报表
- 知乎热议最丑陋的数学公式:「四次方程求根」高票当选
- 存储容量与地址空间的计算
- python exec函数和eval函数_python中的exec()函数和eval()函数
- 沐阳Python扫盲01类的概念与实例
- 汽车CAN通信基础知识-Java之Socket通信实战
- Java中字符流(FileReader(read、close)、FileWriter(write、close)、字符(输入、输出)流原理解析)
- 基于FPGA的HDMI显示(二)
- Python爬虫爬取美女写真实例
- 会计学原理学习笔记——第三章——账户与复式记账(3.5生产准备业务核算——费用发生业务核算)
热门文章
- php赋值权重_php权重计算方法代码分享
- androidstudio表格中填充 宽跟长一样_Excel表格的基本操作教程,覆盖表格制作的10大知识!...
- 【python3】通过hashlib 和base64 对字符串进行加密
- Python数据库添加时间
- python web 程序的9种部署方式
- 驱动华为_实锤!华为成立驱动芯片部门,OLED驱动芯片正流片
- 【今日头条】头条号图文发布页面的“扩展链接”是干嘛用的?
- 20200301 Intel Realsense D435摄像头掉线问题测试数据记录
- python 函数参数 (必选参数、默认参数、可选参数、关键字参数)
- python开发环境配置以及其简单的运行方式