当前位置: 首页 > news >正文

SQL 语句继续学习之记录二

三, 聚合与排序

 对表进行聚合查询,即使用聚合函数对表中的列进行合计值或者平均值等合计操作。

通常,聚合函数会对null以外的对象进行合计。但是只有count 函数例外,使用count(*) 可以查出包含null在内的全部数据行数。

使用distinct 关键字删除重复值。

1,聚合函数之常见的5个聚合函数

count:计算表中的记录数(行数)

SUM:计算表中数值列的数据合计值

AVG:计算表中数值列的数据平均值

MAX:求出表中任一列中数据的最大值

MIN:求出表中任意列中数据的最小值

如上,用于合计的函数称为聚合函数或者集合函数。所谓聚合,就是将多行汇总为一行。实际上,所有的聚合函数都是这样,输入多行输出一行

1)

a, 如下,我们要获取如下原始数据表中全部数据的行数。

 如上,一共有8行数据,所以我们获取到的结果应该是8.

如下 count(*) 中的 * 表示全部列

b, 计算null以外数据的行数

如上,查询的是全部数据(所有列的)行数,但是如果想要查询某个列(比如该列可能存在null 数据) 的行数,该怎么做呢?

比如想得到shiire_tanka 列(进货单价)中非空行数的列,,可以通过将对象列设定为参数来实现

Note:

Count 函数的结果根据参数不同而不同。count(*)会得到该表格包含null数据的所有行数,而count(某个列名)得到的是该列中,除了null之外的数据的行数。

Count 函数也是唯一一个可以以星号 * 为参数的函数,

2) 计算合计值

例如,我们需要计算销售单价的合计值,即销售单价列,所有数值加起来的总和。

1000 + 4000 + 3000 + 6800 + 500 + 880 + 100 = 16280 

Note: 之前我们提到,含有null 的算术运算符中,如果数据含有null,则最终运算结果为null,但如上,最终结果并不为null,而是我们日常生活中所理解的正常的数值。其原因为,聚合函数,除了count 函数外,其他几个聚合函数在最终计算时都会将null 数据提前排除在外。因此不会看到null的结果,这也证明我们之前的描述的正确性。 所谓count函数例外,是说count在参数为星号 * 时,会将null结果计算在内。

3)计算平均值

如我们要获取销售单价的平均值

 

注意,如上,hanbai_tanka 结果值是16280,如果按照8行为除数,结果应该是2035,但现在的结果是2325.7143,  是因为该数据的计算是 16280 除以 7 得到的结果,也就是说,计算平均值时,avg 函数会将null 数据所在的行排除掉,计算非null数据的总值,同时将非null数据的行数作为除数

 

 

 

 

http://www.lryc.cn/news/135241.html

相关文章:

  • 【Python原创设计】基于Python Flask 机器学习的全国+上海气象数据采集预测可视化系统-附下载链接以及详细论文报告,原创项目其他均为抄袭
  • Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)
  • 【Go 基础篇】Go语言获取用户终端输入:实现交互式程序的关键一步
  • 学习笔记:Opencv实现拉普拉斯图像锐化算法
  • 如何在前端实现WebSocket发送和接收UDP消息(多线程模式)
  • 【微服务】一文了解 Nacos
  • 量子计算对信息安全的影响:探讨量子计算技术对现有加密方法和信息安全基础设施可能带来的颠覆性影响,以及应对策略
  • ajax-axios-url-form-serialize 插件
  • 【AIGC】单图换脸离线版软件包及使用方法
  • 8.19论文阅读
  • HAProxy
  • 基于EasyExcel的Excel读取
  • 链路聚合详解
  • Shell编程学习之if分支语句的应用
  • 2023.8 - java - 泛型
  • 【数据结构练习】链表面试题锦集一
  • 自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:SequentialChain和TransformationChain]
  • 什么是卷积神经网络
  • 银行数字化转型程度-根据年报词频计算(2012-2021年)
  • 微信开发之一键修改群聊备注的技术实现
  • [oneAPI] 基于BERT预训练模型的SQuAD问答任务
  • 机器学习笔记之优化算法(十七)梯度下降法在强凸函数的收敛性分析
  • shell脚本中linux命令的特殊用法记录
  • Nvidia H100:今年55万张够用吗?
  • 【Vue2.0源码学习】生命周期篇-初始化阶段(initLifecycle)
  • Android开发基础知识总结(三)简单控件(上)
  • 在Qt窗口中添加右键菜单
  • Day8 智慧商城
  • LeetCode:Hot100python版本之回溯
  • 分布式事务理论基础