mysql having子句_mysql having子句学习
在用到having子句的地方,出现最多的往往是sql的聚合函数,例如SUM, COUNT, MAX, AVG等。
这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
示例:
SELECT SUM(population) FROM bbc
返回总人口数。
通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。
当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值。
也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。
HAVING子句可以让我们筛选成组后的各组数据。
WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前。
而 HAVING子句在聚合后对组记录进行筛选。
举二个例子,帮助大家熟悉having的用法。
一、显示每个地区的总人口数和总面积.
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中
的不同字段(一或多条记录)作运算。
二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000
此处不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
HAVING子句可以筛选成组后的各组数据。
mysql having子句_mysql having子句学习相关推荐
- mysql where关键字_MySQL WHERE 子句
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据. 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中. 语法 以下是 SQL SELECT 语句使用 ...
- mysql in子句_MySQL IN子句
可以使用IN子句来取代许多OR条件 要了解IN子句,考虑下面的 employee_tbl 表,它有以下记录: mysql> SELECT * FROM employee_tbl; +------ ...
- mysql 有哪些子句_mysql 查询子句
样板 create database sky; use sky; create table m1( id int(11), name char(20), age tinyint(10), sex en ...
- mysql mdl 锁_MySQL源码学习:MDL字典锁
什么是MDL MDL,Meta Data lock,元数据锁,一般称为字典锁.字典锁与数据锁相对应.字典锁是为了保护数据对象被改变,一般是一些DDL会对字典对象改变,如两个TX,TX1先查询表,然后T ...
- MySQL mdl导入_MySQL源码学习——MDL字典锁
什么是MDL MDL,Meta Data lock,元数据锁,一般称为字典锁.字典锁与数据锁相对应.字典锁是为了保护数据对象被改变,一般是一些DDL会对字典对象改变,如两个TX,TX1先查询表,然后T ...
- mysql 苏勇_MySQL数据库基础学习笔记(整理自苏勇老师的MySQL基础课程视频)
一.mysql安装及基本配置 1.安装 Mysql官网:www.mysql.com 开源版本(MySQL Community Server) --安装系统自带版本(如果需要更高版本可到官网下载) # ...
- mysql as用法_MySQL基础学习总结
数据分析无法离开SQL这一重要的工具,经过十天时间的学习,并完全以MySQL工具对上一节的数据分析岗位数据进行了分析,加强了操作训练,对这一工具使用有了基本的经验.本着以输出为手段检验学习效果,以温故 ...
- mysql having and or_MySQL HAVING子句
在本教程中,我们将学习如何使用MySQL HAVING子句来指定行分组或聚合的过滤条件. MySQL HAVING子句 MySQL的HAVING子句在SELECT语句中是用来为某一组行或聚合指定过滤条 ...
- mysql select having_MySQL中SELECT子句WHERE和HAVING的区别
MySQL中SELECT子句WHERE和HAVING的区别 WHERE子句: 在分组之前使用,表示从所有数据中根据条件筛选出部分数据,以完成分组的要求. 在一个WHERE子句中使用列别名是不允许的,因 ...
最新文章
- 老电脑安装matlab 2018卡不卡,软件装C盘会变卡?Windows系统要怎么用才不卡?
- 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
- win7系统, vim的_vimrc文件无法修改
- 关于Matconvnet中Conv-ReLU-Pool-NormBatch的总结与思考
- 取得Servlet文件的絕對路徑;文件讀寫操作
- 前端学习(1169):实例数组find
- 剑指offer面试题41. 数据流中的中位数(二分查找)
- opencv python 鼠标响应操作
- 2023年最新zabbix监控Linux服务+ensp交换机
- 计算机颜色偏蓝,电脑整个屏幕颜色不正常偏蓝怎么调回正常颜色?
- 栈和队列的区别与栈和堆的区别
- 什么是架构即代码( Infrastructure As Code)
- FPGA-Vivado
- 安卓逆向学习资料推荐
- 空间直角坐标系(XYZ)转经纬度(BLH)
- FDC2214+STM32F103
- [转] 一篇好文 ---steve jobs (stay hungry, stay foolish)
- Java中比较数字的大小
- Python爬虫——动漫zj(manhua站)
- 什么是服务器服务器是什么?