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

news2024/11/14 18:48:24

【重学 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.coloradmin.cn/o/2155451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

波分技术基础 -- Liquid OTN

什么是Liquid OTN 传统OTN技术主要定位于骨干网和城域网应用,主要用于承载大于1Gbits/s速率业务,在OTN下沉到城域/接入网后,面临如下问题:管道弹性不足(最小管道ODU0)、连接数少、带宽调整不够灵活等挑战。…

最强AI人脸高清修复

效果展示 大家好,今天给大家带来github上超火的人脸高清修复AI技术code former,算法不仅能够修复图像,还能够对视频进行修复 再上一些高模糊的图像,测试一下算法效果: 怎么样,效果是不是非常强大。 算…

正点原子RK3588(二)——lenet测试和modelzoo模型

文章目录 一、lenet二、modelzoo模型2.1 介绍2.2 测试 一、lenet import cv2 import numpy as np from rknnlite.api import RKNNLite RKNN_MODEL LeNet5_mnist_model.rknndef show_top5(result):output result[0].reshape(-1)output_sorted sorted(output, reverseTrue)to…

微信小程序教程:如何在个人中心实现头像贴纸功能

在微信小程序中,个性化设置是提升用户体验的重要手段。本文将详细介绍如何在个人中心模块中实现头像贴纸功能,让用户可以自由地装饰自己的头像。 头像贴纸功能允许用户在个人头像上添加装饰性贴纸,增加个性化表达。以下是实现该功能的主要步骤…

设计模式-行为型模式-命令模式

1.命令模式的定义 命令模式将请求封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求的排队执行、记录日志、撤销等功能; 1.1 命令模式优缺点 优点 降低系统的耦…

独立站如何批量查收录,如何进行独立站的批量收录查询的详细操作

对于独立站(即自主搭建的网站)进行批量收录查询,是网站优化与管理中的一项重要工作,它有助于了解网站在搜索引擎中的表现情况,从而制定更有效的SEO策略。介绍如何进行独立站的批量收录查询: 一、准备阶…

C++:数组与字符串

一、数组 数组是一种存储若干元素的数据类型,在诸多编程语言中存在,其显著的特点是元素通常是在物理层面上连续存储的(逻辑上的数组,比如链表,可能不是),并且具有极快的元素访问速度。 数组通常…

Nuxt Kit API :路径解析工具

title: Nuxt Kit API :路径解析工具 date: 2024/9/22 updated: 2024/9/22 author: cmdragon excerpt: 摘要:本文介绍了Nuxt Kit中用于解析路径的API工具,包括resolvePath、resolveAlias、findPath和createResolver。这些工具助力开发者处理模块路径、别名、文件扩展名,提…

跨站请求伪造(CSRF)漏洞详解

免责申明 本文仅是用于学习检测自己搭建的DVWA靶场环境有关CSRF的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法…

你了解system V的ipc底层如何设计的吗?消息队列互相通信的原理是什么呢?是否经常将信号量和信号混淆呢?——问题详解

前言:本节主要讲解消息队列, 信号量的相关知识。 ——博主主要是以能够理解为目的进行讲解, 所以对于接口的使用或者底层原理很少涉及。 主要的讲解思路就是先讨论消息队列的原理, 提一下接口。 然后讲解ipc的设计——这个设计一些…

【Godot4.3】点数据简易表示法和Points2D

概述 在构造多点路径时我们会用到PackedVector2Array,并使用Vector2()来构造点。在手动创建多点数据时,这种写法其实很难看,有大量重复的Vector2(),比如下面这样: var points [Vector2(100,100),Vector2(200,200),V…

240922-MacOS终端访问硬盘

A. 最终效果 B. 操作步骤 在macOS中,可以通过命令行使用Terminal访问硬盘的不同位置。你可以按照以下步骤操作: 打开终端(Terminal): 在应用程序中打开终端,或者使用 Spotlight 搜索“Terminal”来启动。 …

WebLogic 靶场攻略

后台弱⼝令GetShell 步骤一:环境部署 cd vulhub-master/weblogic/weak_password docker-compose up -d docker ps 步骤二:漏洞复现 默认账号密码:weblogic/Oracle123 步骤二:进行登录 http://192.168.10.190:7001/console/…

thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)

thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装(一个项目不会只有一个应用)安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务(Service&#xf…

【C++ Primer Plus习题】17.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <fstream> using namesp…

【树莓派】通过HTTP服务器实时传输视频流

前言一、树莓派端的代码二、网页端网址展示总结 前言 树莓派3B的通过HTTP服务器实时传输MJPEG视频流 一、树莓派端的代码 注意在先安装完库 pip install Flask picameraFlask 是一个用 Python 编写的轻量级 web 框架。它主要用于构建 web 应用和 web 服务。Flask 提供了许多…

【无标题】HG6201M路由的超级管理密码获取

这里写自定义目录标题 1、开启telnet http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable1&keyXXXXX 注意&#xff1a;此处的XXXXX为路由背面标签的MAC地址&#xff0c;去掉“-”&#xff0c;且大写。 成功后会显示&#xff1a;telnet开启 2、登录telnet 此处采…

C++异常(基本知识)、C++模板类(基本知识)

什么是异常和异常处理&#xff1f; 异常就是程序运行过程中出现的问题。“异常”问题并不经常出现&#xff08;按道理来说我们写好的正常的程序是不应该频繁出现异常的&#xff09;&#xff1b;异常处理技术使得我们可以写程序解决出现的异常问题。很多情况下&#xff0c;处理异…

有女朋友后,怎么养成贤内助?为自己找个好伴侣,为孩子找个好妈妈,为母亲找个好儿媳

有女朋友后&#xff0c;怎么养成贤内助&#xff1f;为自己找个好伴侣&#xff0c;为孩子找个好妈妈&#xff0c;为母亲找个好儿媳 时代背景女生有点作怎么办&#xff1f;大商家族的爱情观 时代背景 一块钱的东西&#xff0c;赋予俩块钱的意义&#xff0c;三块钱卖出去。 用商…

【垃圾识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目选题+TensorFlow+图像识别

一、介绍 垃圾识别分类系统。本系统采用Python作为主要编程语言&#xff0c;通过收集了5种常见的垃圾数据集&#xff08;‘塑料’, ‘玻璃’, ‘纸张’, ‘纸板’, ‘金属’&#xff09;&#xff0c;然后基于TensorFlow搭建卷积神经网络算法模型&#xff0c;通过对图像数据集进…