DQL-聚合函数
DQL-聚合函数
SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数。
聚合函数对一组值执行计算并返回单一的值。除 COUNT 以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。
所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。聚合函数可以应用于查询语句的SELECT中,或者HAVING子句中,但不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。
一、聚合函数概述
1.1、什么是聚合函数
SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数。 聚合函数经常与 SELECT 语句的 GROUP BY 子句的HAVING一同使用。
1.2、聚合函数的特点
除了 COUNT 以外,聚合函数忽略空值。
聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。
所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。
1.3、常用聚合函数
count(字段名):统计总行数
sum(字段名):计算列总和
avg(字段名):求某一列平均值
min(字段名):求某一列的最小值
max(字段名):求某一列的最大值
1.4、聚合函数语法
格式:
select 聚合函数(字段名) from 数据库表名;
二、聚合函数应用
2.1、聚合函数基础应用
案例:
查看学生信息表中通过英语成绩统计所有的学生数
mysql> select count(english) as 学生人数 from students;
+-----+
| 总人数 |
+-----+
| 7 |
+-----+
1 行于数据集 (0.01 秒)
注意:
null的记录是不会统计,如果要想统计null,可以用ifnull(字段名,默认值)
默认值里设置:null用0表示
mysql> select count(ifnull(english,0)) as 总人数 from students;
+-----+
| 总人数 |
+-----+
| 9 |
+-----+
1 行于数据集 (0.02 秒)
除了前面这个方法可以统计学生人数外,我们还可以:
#比较常用的方法
mysql> select count(*) from students;
+----------+
| count(*) |
+----------+
| 9 |
+----------+
1 行于数据集 (0.01 秒)
查看学生信息表中年龄大于19的总人数
mysql> select count(*) from students where age>19;
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 行于数据集 (0.02 秒)
查看学生信息表中英语成绩的总分
mysql> select sum(english) as 英语总分 from students;
+-------+
| 英语总分 |
+-------+
| 544.5 |
+-------+
1 行于数据集 (0.01 秒)
查看学生信息表中英语成绩的平均分
mysql> select avg(english) as 英语平均分 from students;
+----------+
| 英语平均分 |
+----------+
| 77.78571 |
+----------+
1 行于数据集 (0.01 秒)
查看学生信息表中英语成绩的最高分
mysql> select max(english) as 英语最高分 from students;
+-------+
| 英语最高分 |
+-------+
| 98.5 |
+-------+
1 行于数据集 (0.01 秒)
查看学生信息表中英语成绩的最低分
mysql> select min(english) as 英语最低分 from students;
+-------+
| 英语最低分 |
+-------+
| 50.0 |
+-------+
1 行于数据集 (0.01 秒)
2.2、聚合函数分组应用
案例:
统计学生信息表中男生的人数与女生的人数
mysql> select count(*),sex from students group by sex;
+----------+------+
| count(*) | sex |
+----------+------+
| 6 | 男 |
| 3 | 女 |
+----------+------+
2 行于数据集 (0.01 秒)
统计学生信息表中男生和女生的人数、英语总成绩、数学平均成绩
mysql> select count(*),sex,sum(english),avg(math) from students group by sex;
+----------+------+--------------+-----------+
| count(*) | sex | sum(english) | avg(math) |
+----------+------+--------------+-----------+
| 6 | 男 | 318.5 | 87.25000 |
| 3 | 女 | 226.0 | 82.66667 |
+----------+------+--------------+-----------+
2 行于数据集 (0.01 秒)
统计学生信息表中男生和女生的人数、英语总成绩、数学平均成绩,总人数超过3人显示
mysql> select count(*) as n,sex,sum(english),avg(math) from students group by sex having n>3;
+---+------+--------------+-----------+
| n | sex | sum(english) | avg(math) |
+---+------+--------------+-----------+
| 6 | 男 | 318.5 | 87.25000 |
+---+------+--------------+-----------+
1 行于数据集 (0.02 秒)
三、聚合函数应用扩展
3.1、group_concat
group_concat(字段名)可以作为一个输出字段来使用,表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合。
案例:
统计学生信息表中男生和女生的人数、英语总成绩、数学平均成绩及数学成绩的集合
mysql> select count(*),sex,sum(english),avg(math),group_concat(math) from students group by sex;
+----------+------+--------------+-----------+---------------------+
| count(*) | sex | sum(english) | avg(math) | group_concat(math) |
+----------+------+--------------+-----------+---------------------+
| 3 | 女 | 226.0 | 82.66667 | 80.0,70.0,98.0 |
| 6 | 男 | 318.5 | 87.25000 | 88.0,88.0,85.0,88.0 |
+----------+------+--------------+-----------+---------------------+
2 行于数据集 (0.02 秒)
3.2、with rollup
在最后新增一行,来记录当前列里所有记录的总和
案例:
统计学生信息表中男生和女生的人数、英语总成绩、数学平均成绩及增加显示列的记录总和
mysql> select count(*),sex,sum(english),avg(math) from students group by sex with rollup;
+----------+------+--------------+-----------+
| count(*) | sex | sum(english) | avg(math) |
+----------+------+--------------+-----------+
| 3 | 女 | 226.0 | 82.66667 |
| 6 | 男 | 318.5 | 87.25000 |
| 9 | NULL | 544.5 | 85.28571 |
+----------+------+--------------+-----------+
3 行于数据集 (0.02 秒)
DQL-聚合函数的更多相关文章
- DQL排序查询和DQL聚合函数
DQL:查询语句 排序查询 语法: order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2... 排序方式: ASC:升序,默认的 DESC:降序 SELECT * ...
- 数据查询语言DQL 与 内置函数(聚合函数)
数据查询语言DQL 从表中获取符合条件的数据 select select*from表的名字 查询表所有的数据.(select跟from必须一块用 成对出现的) * 表示所有字段,可以换成想要查询的 ...
- 可以这样去理解group by和聚合函数
写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是 ...
- TSQL 聚合函数忽略NULL值
max,min,sum,avg聚合函数会忽略null值,但不代表聚合函数不返回null值,如果表为空表,或聚合列都是null,则返回null.count 聚合函数忽略null值,如果聚合列都是null ...
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
- Mongodb学习笔记四(Mongodb聚合函数)
第四章 Mongodb聚合函数 插入 测试数据 ;j<;j++){ for(var i=1;i<3;i++){ var person={ Name:"jack"+i, ...
- sql语句 之聚合函数
聚合分析 在访问数据库时,经常需要对表中的某列数据进行统计分析,如求其最大值.最小值.平均值等.所有这些针对表中一列或者多列数据的分析就称为聚合分析. 在SQL中,可以使用聚合函数快速实现数据的聚 ...
- oracle数据库函数之============‘’分析函数和聚合函数‘’
1分析函数 分析函数根据一组行来进行聚合计算,用于计算完成狙击的累积排名等,分析函数为每组记录返回多个行 rank_number() 查询结果按照次序排列,不存在并列和站位的情况,可以用于做Oracl ...
- ORACLE 自定义聚合函数
用户可以自定义聚合函数 ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...
- sql 聚合函数、排序方法详解
聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select Max(FSalary) from T_Employee 排 ...
随机推荐
- DBPack 限流熔断功能发布说明
上周我们发布了 v0.4.0 版本,增加了限流熔断功能,现对这两个功能做如下说明. 限流 DBPack 限流熔断功能通过 filter 实现.要设置限流规则,首先要定义 RateLimitFilter ...
- Neural ODE相关论文摘要翻译
*****仅供个人学习记录***** Neural Ordinary Differential Equations[2019] 论文地址:[1806.07366] Neural Ordinary Di ...
- 教大家怎么看monaco-editor的官方文档
最近业务中有用到浏览器在线编辑器,用的是monaco-editor,官网文档只在首页介绍了npm安装方式. 但其实还有另外一种<script>的引入方式,但是这种方式体现在API文档中,由 ...
- 闭包 与 js内存管理
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management https://blog ...
- 新增 Oracle 兼容函数-V8R6C4B0021
KingbaseES V8R6C4B0021新增加以下Oracle 兼容函数. 一.bin_to_num Oracle bin_to_num 函数用于将二进制位转换成十进制的数. 1.传入参数 tes ...
- KingbaseFlySync ddl变更流程
关键字: KingbaseFlySync.Linux.x86_64.mips64el.aarch64.Java 一.ddl变更流程 1. 停掉客户业务,保证没有新数据产生 确认Oracle数据库上所有 ...
- 电商平台物流模块自建OR对接第三方物流平台
前沿 近几年来,电商行业竞争变得愈加激烈,公域流量获客成本越来越高,电商平台规则也越来越严格,数据无法出塔,商家无法自主运营用户群等等原因,很多大品牌纷纷开始搭建自有商城,运营私域流量,以此来降低 ...
- SSTI服务端模板注入漏洞原理详解及利用姿势集锦
目录 基本概念 模板引擎 SSTI Jinja2 Python基础 漏洞原理 代码复现 Payload解析 常规绕过姿势 其他Payload 过滤关键字 过滤中括号 过滤下划线 过滤点.(适用于Fla ...
- 部署Netlify站点博客
Netlify站点部署静态博客 今天尝试把站点部署在Netlify上,因为部署在GitHub Pages上,国内访问速度太慢了,所以就尝试一下别的站点,部署成功之后发现速度还是不太行,后边继续找找原因 ...
- 并发原理 — CPU原子性指令(一)
本篇文章将以Intel CPU作为讨论基础 一.并发的由来 一台计算机有2个cpu,其中CPU1执行程序A,CPU2执行程序B,由于程序A和程序B是两个不同的应用程序,所以它们两个之间并不存在并发问题 ...