5.2 聚合函数

Pandas 2.0 分组聚合进阶:自定义聚合函数与 agg 方法 5 个高效技巧 本文深入探讨Pandas 2.0中分组聚合的高级技巧,重点介绍自定义聚合函数与agg方法的5个高效应用。通过实际代码示例展示如何实现灵活的数据分析,包括多列不同聚合操作、命名聚合提升可读性、性能优化策略等,帮助数据分析师充分发挥Pandas分组聚合的强大功能。 阅读详情


1.概述

聚合函数是运行在行组上,计算和返回单个值的函数;

MySql提供了专门的函数,将查询到的数据进行汇总后再通过结果返回给我们,这就是聚合函数。MySql可以使用聚合函数更加方便的分析和生成报表,其提供以下场景的支持:

  • 确定表中的行数
  • 获得表中行组的和
  • 找出表列的最大值,最小值和平均值

这些场景都需要对表中的数据进行汇总。u因此,返回实际的表数据是对时间和处理资源的一种浪费,我们在查询的过程中就将此数据进行汇总,会更加节省时间,提高效率;

2.聚合函数的使用

MySql提供了以下聚合函数的支持:

函数说明
AVG( )返回某列的平均值
COUNT( )返回某列的行数
MAX( )返回某列的最大值
MIN( )返回某列的最小值
SUM( )返回某列值之和

2.1 AVG( )函数

AVG( )通过对表中行数计数并计算特定列值的和,求得该列的平均值。AVG( )可以用来返回所有列的平均值,也可以用来返回特定列或行的平均值。

2.1.1 使用AVG( )函数返回所有列的平均值

假设我们需要求 products 表中所有产品的平均价格,我们需要这样完成SQl语句:

输入:

SELECT AVG(prod_price) AS avg_price
FROM products;

输出:
在这里插入图片描述
返回值的列名为我们设置的别名avg_price,列中的值为所有产品(行)的平均价格;

2.1.2 使用AVG( )函数返回特定列的平均值

当使用AVG( ) 来确定特定列或行的平均值时,我们需要这样完成SQL:

输入:

SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;

输出:
在这里插入图片描述

其返回供应商为1003的所有产品的平均价格;

2.1.3 使用AVG( )函数的注意事项

AGV( )只能用来确定特定数值列的平均值,而且列名必须作为参数给出,为了获得多个列的平均值,必须使用多个AGV( )函数;

而且如果表中列值为NULL的话,AGV( )函数会忽略这个行;

2.2 COUNT( )函数

COUNT( )函数是用来计数的函数。可以利用COUNT( )确定表中行的数目或符合特定条件的行的数目;

COUNT( )函数有三种使用方法:

  • 使用COUNT(1)对表中行的数目进行计数,不管表列中包含的是空值还是非空值;
  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值还是非空值;
  • 使用COUNT(column)对特定列中具有值得行进行计数,忽略NULL值;

其实COUNT(1)与COUNT(*)的区别可以忽略不计,count(1),其实就是计算一共有多少符合条件的行。

1并不是表示第一个字段,而是表示一个固定值。

可以理解为每个表中都有一个影藏的看不到的列,列中所有字段的值都是固定值1,count(1),就是计算一共有多少个1。

count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

就是这一点效率的差别,导致在实际开发中,人们都选择使用count(1)而不是count(*);

2.2.1 使用COUNT( )函数查询表中全部行的数目

我们查询customers表中的客户的总数:

输入:

SELECT COUNT(1)
FROM customers;

输出:

在这里插入图片描述

2.2.2 使用COUNT( )函数查询表中特定行的数目

接下来我们查询有预留电子邮箱的客户的总人数:

输入:

SELECT COUNT(cust_email) AS num_email
FROM customers;

输出:
在这里插入图片描述

这条SQL中使用COUNT( )函数对cust_email列中有值的的行进行计数,如果指定列名,则会忽略NULL值的行;

2.2.3 使用COUNT( )函数的效率对比

  1. 如果列为主键,count(列名)效率优于count(1)
  2. 如果列不为主键,count(1)效率优于count(列名)
  3. 如果表中存在主键,count(主键列名)效率最优
  4. 如果表中只有一列,则count(*)效率最优
  5. 如果表有多列,且不存在主键,则count(1)效率优于count(*)

2.3 MAX( )函数

MAX( )函数返回指定列中的最大值。MAX( )函数要求指定列名,如:

输入:

SELECT MAX(prod_price) AS max_price
FROM products;

输出:
在这里插入图片描述
使用MAX( )函数会忽略列值为NULL的行。并且MAX( )函数虽然一般用来找出最大的列值或日期值,但MySql允许它用来返回任意列中的最大值,包括文本列。在用于文本数据时,如果数据按照相应的列排序,那么会返回最后一行。

2.4 MIN( )函数

MIN( )函数正好与MAX( )函数相反,它返回指定列的最小值。其也要求指定列名,如:
输入:

SELECT MIN(prod_price) AS min_price
FROM products;

输出:
在这里插入图片描述

与MAX( )函数一样,MIN( )函数也会忽略列值为NULL的行。MIN( )函数允许它用来返回任意列中的最小值,包括文本列。在用于文本数据时,如果数据按照相应的列排序,那么会返回最前面的一行。

2.5 SUM( )函数

SUM( )函数用来返回指定列值得和。

假设orderitems表包含订单中得实际的物品,每个物品有相应的数量,那么我们可以使用下列的SQL语句来查询订购物品的总数:

输入:

SELECT SUM(quantity) AS items_ordered
FROM orderitems
WHERE order_num = 20005;

输出:
在这里插入图片描述

SUM( )函数用来返回订单中的所有物品数量之和,WHERE子句保证只统计某个物品订单中的物品;

SUM( )函数也可以用来合计计算值。在下面的例子中,合计每项物品的item_price*quantity,得出总的订单金额:

输入:

SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num = 20005;

输出:
在这里插入图片描述
函数SUM(item_price*quantity)返回订单中所有物品价钱之和,WHERE子句同样保证只统计某个物品订单中的物品。

同样的,SUM( )函数也会忽略列值为NULL的行。并且如上面的例子所示,利用标准的算术操作符,所有的聚集函数都可以用来执行多个列上的计算。

2.6 DISTINCT( )函数

DISTINCT( )函数可以对所有的行执行计算,可以指定ALL参数,或者不给参数,因为默认就是给定了ALL参数;

DISTINCT( )函数用来对结果进行去重,可以对查询到的结果进行去重后展示。

假设我们查询供应商提供的产品的价格:

输入:

SELECT item_price
FROM orderitems;

输出:
在这里插入图片描述

这样可以得到所有的价格,如果我们使用了DISTINCT( )函数后:

输入:

SELECT DISTINCT item_price
FROM orderitems;

输出:
在这里插入图片描述

此时,只会展示去重后的结果,有相同值的行将只保留一行。同样的,DISTINCT( )函数也可以在其他聚合函数上执行,例如:

输入:

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;

输出:
在这里插入图片描述

可以看到在使用了DISTINCT( )函数后,平均价格变高了,这是因为此例子中多个物品具有相同的较低价格,排除它们后提升了平均价格。

2.7 组合聚合函数

最后,我们来看一个多个聚合函数组合的例子:

输入:

SELECT COUNT(1) AS num_items,
	MIN(prod_price) AS min_price,
	MAX(prod_price) AS max_price,
	AVG(DISTINCT prod_price) AS avg_distinct_price,
	SUM(prod_price) AS sum_price
FROM products;

输出:
在这里插入图片描述

这里用一条SQL语句执行了6个聚合函数,返回了6个值:物品的总数,最小价格,最大价格,去重后的平均价格,所有产品价格的总价。

Pandas 2.x 分组聚合实战:5种自定义函数与内置聚合方法性能对比 本文深入探讨了Pandas 2.x中分组聚合的实战技巧,对比了5种自定义函数与内置聚合方法的性能差异。通过10万行真实数据集的测试,分析了执行速度、内存占用和代码可读性,并提供了针对大数据集的优化策略,帮助开发者提升数据处理效率。 阅读详情

相关推荐

PG系列5-SQL高级特性2——聚合函数和窗口函数

文章目录1、聚合函数1.1 string_agg函数1.2 array_agg函数 1、聚合函数 聚合函数可以对结果集进行计算,常用的聚合函数有 avg()、sum()、min()、max()、count()等,本节 将介绍PostgreSQL两个特殊功能的聚合函数并给出测试示例。 在介绍两个聚合函数之前,先来看一个应用场景,假如一 张表有以下数据: 中国 台北 中国 香港 中国 上海 日本 东京 日本 大阪 要求得到如下结果集: 中国 台北,香港,上海 日本 .

Ghost_0110 4680

MySQL聚合函数的使用方法

【代码】MySQL聚合函数的使用方法。

2302_81782153的博客 171

PG系列5-SQL高级特性2——聚合函数与窗口函数实战解析

本文深入解析PostgreSQL中聚合函数与窗口函数的实战应用。重点介绍了string_agg和array_agg等高级聚合函数,以及窗口函数在排名、移动计算和累计分析中的强大功能。通过具体案例,展示了如何利用这些SQL高级特性高效处理数据拼接、分组分析和时间序列计算,提升数据处理能力与代码效率。

weixin_29223603的博客 252

mysql嵌套查询排序无效果_MySQL-嵌套查询-先去排序后去重

注:MySQL的一次错误使用记录例:现有表agv,job,job_config查询agv表中id,curr_station_code,curr_raw_muxzone_id,crr_reg_fault_code加上job表中的create_time,start_time,end_time,再加job_config表中name字段组成的一张数据表。表中异常数据不为0并且先倒序再去重代码:SELECT...

weixin_33628316的博客 458

SQL聚合函数 COUNT 的5个高级用法与2个常见误区解析

本文深入解析SQL聚合函数COUNT的5个高级用法与2个常见误区,包括COUNT(*)与COUNT(列名)的性能差异、COUNT(DISTINCT)优化策略、与GROUP BY和窗口函数的组合应用等。通过实战案例和性能对比,帮助开发者掌握查询优化技巧,提升数据库操作效率。

weixin_30897079的博客 369

多维聚合后的数据变形术:窗口函数、分层架构与可审计指标派生

多维聚合是OLAP分析的核心环节,其本质是在GROUP BY生成的宽表基础上,通过窗口函数、跨维度比率计算和层级透视重构等技术,对聚合结果进行二次加工。它解决的不是基础统计问题,而是指标可复用性、口径一致性与计算可追溯性等高阶工程挑战。关键技术包括PARTITION BY维度对齐、动态分母选择(如全局/父级占比)、时间代理键构建以支持非标准周期滚动计算,以及基于IQR的多维离群检测。在BI建模、财务对账与运营归因等场景中,采用L1(原子聚合)、L2(维度增强)、L3(指标派生)三层分离架构,能显著提升性能稳

weixin_29158413的博客 271

MySQL的聚合函数

1、count (1)作用:count(列名)返回某一列,行的总数。 (2)语法:select count() | count(列名) from table_name where condition; (3)案例: 1)统计一个班级共有多少学生。 2)统计数学成绩大于等于90的学生的人数。 3)统计总分大于250的人数。 (4)注意:count()会统计一共的记录数,count(列名)会排除为...

编程鸟 2165

硬件-电源-智能保护:eFuse选型与实战设计全攻略

本文深入解析eFuse在硬件电源设计中的关键作用与实战选型技巧。作为智能保护器件,eFuse能提供毫安级精度的过流保护、多重故障防护和智能恢复功能,比传统保险丝快1000倍以上。文章详细介绍了eFuse的工作原理、五大选型维度和PCB布局要点,帮助工程师有效预防电源异常导致的硬件损坏,适用于AI服务器、工业控制等场景。

weixin_30879169的博客 196

SQL知识点小结(非技术类)

什么是组函数

bewithyou729的博客 300

卡尔曼滤波五步拆解:用Excel手推姿态解算全过程

本文通过Excel手推演示,详细拆解了卡尔曼滤波在姿态解算中的五步核心流程。文章以融合陀螺仪与加速度计数据估算角度为例,从状态预测、协方差更新到增益计算,逐步展示如何将抽象的矩阵运算转化为可视化的表格计算,帮助读者直观理解滤波器的“预测-修正”机制,并为算法实现与参数调优提供清晰指导。

hhh00的博客 974

从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》

DDIM发表在ICRL2021上,是DDPM重要的改进之一,能显著提高DDPM的样本质量、减少采样时间,并且能显式控制插值,已经被广泛应用到现在的Diffusion Models上。这篇博客和大家一起详细解读一下DDIM,认识这一伟大的模型。.........

沉迷单车的追风少年 1万+

SQL聚合函数---汇总数据

此篇文章内容均来自与mysql必知必会教材,后期有衍生会继续更新、补充知识体系结构。

睡不醒的每天 938

Sparse-ICP—(4) 加权稀疏迭代最近点算法(matlab版)

本文介绍了加权稀疏迭代最近点算法的实现。

点云侠的博客 639

MysqlSQL语句2☞联表查询、自连接、分页和排序、子查询、常用函数、聚合函数、MD5加密

联表查询 where等值查询 on 连接查询 1.内连接 SELECT `grade`,s.id,`name` FROM student [AS] s INNER JOIN result [AS] r WHERE s.id=r.id student和result都有的显示 Oracle有full join ,但MySQL中没有,使用union达到目的 2.全连接 SELECT * FROM student LEFT JOIN result ON student.id=r..

m0_56809927的博客 333

SPICE仿真软件:HSPICE_(22).HSPICE仿真案例分析

通过上述案例分析,我们可以看到HSPICE仿真软件在不同电路类型和仿真场景中的应用。无论是简单的直流分析、交流分析还是复杂的暂态分析,HSPICE都能提供详细的仿真结果,帮助我们更好地理解和优化电路设计。希望这些案例能够为读者提供实用的参考和指导,进一步提升使用HSPICE进行电路仿真的能力。输入文件的编写:确保输入文件格式正确,使用注释来解释每一部分的内容。分析类型的选择:根据电路的特点选择合适的分析类型,如.DC.AC和.TRAN。输出结果的设置:使用.print命令来指定需要输出的节点电压和支路电流。

kkchenjj的博客 1296

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8224

阿语python4-1 django框架v5.0第2.7.3节聚合函数和排序函数

1. 聚合函数使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和,被定义在django.db.models中。例:查...

zz77244920的博客 162

Python爬虫实战:携程旅游攻略爬取全流程解析(动态接口+反爬破解+异步爬取)

本文介绍了携程旅游攻略的爬取全流程,涵盖静态和动态页面抓取、异步请求、高级反爬策略以及数据存储和简单分析。增加用户评论和评分抓取结合NLP分析攻略文本情感与关键词建立旅游推荐系统自动化代理IP池和验证码识别模块。

2201_76125261的博客 2035

R语言实战——栅格聚合方法(超方便)

今天的分享就到这里结束了,我们是梧桐GIS,我们致力于用最清晰的教程带你学会GIS的那些事!文章顶部点击「梧桐GIS」名称进入公众号主页,点击右上角「三个小点」,点击「设为星标」,梧桐GIS名称旁边出现一个黄色的五角星,就设置成功啦~面对这个需求,我最先想到的是重采样,它有很多重采样算法,可以很快的变换栅格的分辨率。小编最近做到的一个项目的要求如下:现在有一个30M分辨的碳排放栅格数据,需要得到2KM、5KM、10KM的格网数据。我个人认为,应用最广泛的,可能就是栅格的渔网划分。

Promising_GEO的博客 894

HDR 人像肤色稳定实战:AE/AWB/ToneMap 冲突解耦与优先级裁决

人像 HDR 最容易“翻车”的就是**肤色飘**:AE 抢亮度、AWB 拉白点、TM 又在肩部压高光,三方各自“对”却合起来“错”。本文给出一套**工程可落地**的裁决策略:以**肤色 ROI 锚点**为最高约束,AE 先对脸部入射照度收敛,AWB 在**肤色先验 + 光源模型**下缓变,TM 采用**色相保持 + 中灰/肤色双锚**且时域一致化。配套**阈值与回归**(ΔE00、亮度漂移 RMS、频闪注入),把“主观对”的口径落到**可度量**,并给出逆光、多脸、霓虹等极端场景的**例外分流**。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1174

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Pandas多维聚合实战:从银行风控到客户分析的5种生产级模式

多维聚合是数据分析的核心能力,本质是将原始数据按业务维度进行信息压缩与结构化表达。其原理不仅涉及groupby、agg、rolling等技术操作,更关键的是对时间窗口对齐、维度层级控制、缺失值语义、列名业务映射等工程细节的精准把握。在金融、电商、支付等高要求场景中,滚动均值、扩展累计、多列异构聚合、自定义业务函数及多级分组透视等模式常需组合使用,以支撑风险监控、客户健康度评估、经营归因等真实需求。本文基于日均2.3亿笔交易的银行级系统实践,详解如何让聚合结果既符合数学逻辑,又承载可审计、可解释、可落地的业务

diegouyi3472的博客 394

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

impala 自定义聚合函数不能用java开发,只能用c++开发

impala3.0 自定义函数(UDF:USER-DEFINED FUNCTION)有 单行函数(eg: rtrim(),abs(),concat() ,substr()等),可以使用scala、java 、C++开发 自定义聚合函数(UDAF:USER-DEFINED AGGREGATE FUNCTION) (eg:sum(),max(),avg() 等 ),只能用C++开发,暂...

微风 1199

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

在 Postgres 中使用聚合函数

聚合函数在 SQL 查询中用于计算和汇总数据,以便于分析和报告。它们通常与GROUP BY子句结合使用,将数据分组后对每组进行计算。聚合函数的结果是一个单一的值,代表了分组数据的汇总信息。:要应用的聚合函数及其参数列。table_name:要查询的表名。condition:可选的条件子句,用于筛选数据。:用于分组的列,按该列对数据进行分组计算。

网络技术联盟站 1683

聚合函数的使用注意1

上,那么它实际上会将每个商品的数量差与所有商品的总数量相加,而不是计算每个商品的数量差。因此,我们需要先对数量进行求和,然后再用每个商品的数量减去该商品的总数量得到数量差。等)必须作用于GROUP BY子句中的列或常量。而在这个查询中,我们想要计算每个商品的数量差。,然后再用每个商品的数量减去该商品的总数量得到数量差。聚合函数和group by使用时的注意事项。,所以需要先对数量进行求和。语句中,聚合函数(如。

南州博客 347

5、聚合函数

这篇文章介绍了SQL中的聚合函数及其分类,主要包括核心、集合聚合、数学聚合、取极值和其他五大类函数。核心函数如AVG、COUNT、MAX、MIN、SUM等用于基础计算;集合聚合函数如COLLECT_LIST、MAP_AGG等用于数据集合操作;数学聚合函数如STDDEV、VAR_SAMP等用于统计分析;取极值函数如MAX_BY、MIN_BY等用于查找极值对应记录;其他函数如APPROX_DISTINCT等提供特殊计算功能。每种函数都给出了语法说明和示例,例如计算平均薪资、职工人数等。

lydms的博客 1万+

mysql函数时间滑动_mysql滑动聚合/年初至今聚合原理与用法实例分析

本文实例讲述了mysql滑动聚合/年初至今聚合原理与用法。分享给大家供大家参考,具体如下:滑动聚合是按顺序对滑动窗口范围内的数据进行聚合的操作。下累积聚合不同,滑动聚合并不是统计开始计算的位置到当前位置的数据。这里以统计最近三个月中员工第月订单情况为例来介绍滑动聚合。滑动聚合和累积聚合解决方案的主要区别在于连接的条件不同。滑动聚合条件不再是b.ordermonth <= a.ordermon...

weixin_31623707的博客 500
上一篇: 5.1 数据处理函数
下一篇: 5.3 GROUP BY分组数据
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值