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

【重学 MySQL】三十七、聚合函数

【重学 MySQL】三十七、聚合函数

  • 基本概念
  • 5大常用的聚合函数
    • COUNT()
    • SUM()
    • AVG()
    • MAX()
    • MIN()
  • 使用场景
  • 注意事项
  • 示例查询

在这里插入图片描述
聚合函数(Aggregate Functions)在数据库查询中扮演着至关重要的角色,特别是在处理大量数据时。它们能够对一组值执行计算,并返回一个汇总后的单一值。这些函数在处理统计、报告生成以及数据分析等任务时特别有用。

基本概念

聚合函数作用于一组行上,并返回一个单一的汇总值。这组行可以是表中的所有行,也可以是满足特定条件的行(通过WHERE子句指定)。此外,聚合函数经常与GROUP BY子句结合使用,以便对结果集进行分组,并对每个组分别计算聚合值。

5大常用的聚合函数

COUNT()

  • 作用:计算行数。
  • 用法
    • COUNT(*):计算包括NULL值在内的行数。
    • COUNT(column):计算指定列中非NULL值的行数。
    • COUNT(DISTINCT column):计算指定列中不同非NULL值的数量。
  • 示例SELECT COUNT(*) FROM employees; 计算employees表中的总行数。

SUM()

  • 作用:计算数值列中值的总和。
  • 用法SELECT SUM(column_name) FROM table_name;
  • 示例SELECT SUM(salary) FROM employees; 计算employees表中所有员工的薪水总和。

AVG()

  • 作用:计算数值列的平均值。
  • 用法SELECT AVG(column_name) FROM table_name;
  • 示例SELECT AVG(salary) FROM employees; 计算employees表中所有员工的平均薪水。

MAX()

  • 作用:返回某列中的最大值。
  • 用法SELECT MAX(column_name) FROM table_name;
  • 示例SELECT MAX(salary) FROM employees; 返回employees表中薪水最高的员工的薪水。

MIN()

  • 作用:返回某列中的最小值。
  • 用法SELECT MIN(column_name) FROM table_name;
  • 示例SELECT MIN(salary) FROM employees; 返回employees表中薪水最低的员工的薪水。

使用场景

  • 统计总数:使用COUNT()函数来计算表中的记录数,或者某个特定条件下的记录数。
  • 求和:使用SUM()函数来计算数值列的总和,如计算总销售额、总库存量等。
  • 计算平均值:AVG()函数用于计算平均值,如平均薪资、平均成绩等。
  • 查找极值:MAX()和MIN()函数用于找出某列的最大值和最小值,如最高分、最低分、最高销售额等。

注意事项

  • 当聚合函数与GROUP BY子句一起使用时,它们会对每个组分别计算聚合值。
  • 聚合函数通常忽略NULL值,但COUNT(*)除外,它会计算包括NULL值在内的所有行数。
  • 聚合函数的结果可以作为SELECT列表的一部分返回,也可以用在HAVING子句中作为过滤条件。
  • 聚合函数不能嵌套调用聚合函数(即不能直接使用AVG(SUM(column_name))),但可以在子查询中嵌套使用聚合函数。

示例查询

假设有一个名为sales的表,包含product_idsale_dateamount等字段,以下是一些使用聚合函数的示例查询:

  • 计算总销售额:SELECT SUM(amount) FROM sales;
  • 计算每种产品的平均销售额:SELECT product_id, AVG(amount) FROM sales GROUP BY product_id;
  • 找出销售额最高的产品ID:SELECT product_id FROM sales GROUP BY product_id ORDER BY SUM(amount) DESC LIMIT 1;

这些聚合函数在数据分析、报表生成等场景中非常有用,能够帮助用户快速地从大量数据中提取出关键信息。


http://www.kler.cn/news/317132.html

相关文章:

  • 【第十二章:Sentosa_DSML社区版-机器学习之回归】
  • expressjs 和 Router 配置 POST 请求
  • 智能算法躲避拥堵,高德企业用车上线“动态选路服务”为出行提效
  • Redis常用数据类型
  • 自动化测试常用函数
  • 数据结构 ——— 算法的空间复杂度
  • 使用 HFD 加快 Hugging Face 模型和数据集的下载,解决443报错
  • 逗号运算符
  • git报错:无法读取远程分支 ‘origin‘ does not appear to be a git repository
  • MySQL—多表操作详解
  • 【CSS in Depth 2 精译_038】6.2 CSS 定位技术之:绝对定位
  • 使用SBP打AssetBundle时脚本引用丢失
  • [Linux]ubuntu安装nvidia显卡驱动登录后黑屏
  • 通过 Flink 的火焰图定位反压
  • LabVIEW提高开发效率技巧----合理使用数据流与内存管理
  • MySQL篇(管理工具)
  • CPLD 工程师面试题
  • springboot结合p6spy进行SQL监控
  • Hadoop 性能优化高频面试题及答案
  • XSS—xss-labs靶场通关
  • codeforces round974 div3 分层图 树形dp
  • uniApp实现APP内自更新
  • 【OpenCV】场景中人的识别与前端计数
  • 针对论坛系统设计测试用例
  • 分布式难题-三座大山NPC
  • 使用streaming-json-py插件处理JSON数据流:详细指南
  • 【论文阅读笔记】TOOD: Task-aligned One-stage Object Detection
  • Linux服务部署指南
  • Vue3教程 - 1 Vue简介
  • minitrace使用