sql中的聚合函数

SQL中的聚合函数用于对表中的数据进行汇总计算,常用来生成统计信息,例如总和、平均值、最大值、最小值等。它们通常与GROUP BY子句一起使用,以对数据分组后再计算聚合结果。

以下是SQL中常用的聚合函数及其详细讲解:


1. COUNT( )

功能: 统计记录的数量。

  • 语法:

    sql

    SELECT COUNT(column_name) FROM table_name;

  • 应用场景:

    • COUNT(*):统计所有行的数量(包括NULL值)。
    • COUNT(column_name):统计指定列中非NULL值的数量。
  • 示例:

     

    sql

    SELECT COUNT(*) AS total_rows FROM employees;

    返回employees表中的总行数。

     

    sql

    SELECT COUNT(department_id) AS valid_departments FROM employees;

    返回department_id列中非NULL值的数量。


2. SUM( )

功能: 计算数值列的总和。

  • 语法:

     

    sql

    SELECT SUM(column_name) FROM table_name;

  • 注意事项:

    • 只能对数值列使用。
    • 如果列中全是NULL,结果为NULL
  • 示例:

     

    sql

    SELECT SUM(salary) AS total_salary FROM employees;

    返回employees表中salary列的总和。

     

    sql

    SELECT department_id, SUM(salary) AS department_salary FROM employees GROUP BY department_id;

    按部门汇总工资。


3. AVG( )

功能: 计算数值列的平均值。

  • 语法:

     

    sql

    SELECT AVG(column_name) FROM table_name;

  • 注意事项:

    • SUM类似,仅适用于数值列。
    • 自动忽略NULL值。
  • 示例:

     

    sql

    SELECT AVG(salary) AS average_salary FROM employees;

    返回员工的平均工资。

     

    sql

    SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id;

    按部门计算平均工资。


4. MAX( )

功能: 获取列中的最大值。

  • 语法:

     

    sql

    SELECT MAX(column_name) FROM table_name;

  • 注意事项:

    • 适用于数值、日期和字符串列。
    • 忽略NULL值。
  • 示例:

     

    sql

    SELECT MAX(salary) AS highest_salary FROM employees;

    返回最高工资。

     

    sql

    SELECT MAX(hire_date) AS latest_hire_date FROM employees;

    返回最新的入职日期。


5. MIN( )

功能: 获取列中的最小值。

  • 语法:

     

    sql

    SELECT MIN(column_name) FROM table_name;

  • 注意事项:

    • MAX类似,适用于数值、日期和字符串列。
    • 忽略NULL值。
  • 示例:

     

    sql

    SELECT MIN(salary) AS lowest_salary FROM employees;

    返回最低工资。

     

    sql

    SELECT MIN(hire_date) AS earliest_hire_date FROM employees;

    返回最早的入职日期。


6. GROUP BY 和 聚合函数配合使用

聚合函数常与GROUP BY结合,按分组计算聚合值。

  • 示例:
     

    sql

    SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id;

    按部门汇总工资。


7. HAVING 子句

当使用聚合函数筛选分组结果时,需要使用HAVING,而不是WHERE

  • 示例:
     

    sql

    SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id HAVING SUM(salary) > 50000;

    SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id HAVING SUM(salary) > 50000;

    筛选出工资总和超过50000的部门。


8. 注意事项:

  • 聚合函数忽略NULL值(除了COUNT(*))。
  • 如果在SELECT中使用普通列,必须同时出现在GROUP BY中,否则会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59879.shtml

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

相关文章

Java函数式编程学习笔记

函数式编程-Stream流 1. 概述 1.1 为什么学? 能够看懂公司里的代码大数量下处理集合效率高代码可读性高消灭嵌套地狱 下面是没有使用函数式编程的代码: //查询未成年作家的评分在70以上的书籍 由于洋流影响所以作家和书籍可能出现重复,需…

Centos 7 安装wget

Centos 7 安装wget 最小化安装Centos 7 的话需要上传wget rpm包之后再路径下安装一下。rpm包下载地址(http://mirrors.163.com/centos/7/os/x86_64/Packages/) 1、使用X-ftp 或者WinSCP等可以连接上传的软件都可以首先连接服务器,这里我用的…

.NET 9.0 中 System.Text.Json 的全面使用指南

以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…

前端页面一些小点

案例一&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>快递单号查询</title><…

spring-data-elasticsearch 3.2.4 实现桶bucket排序去重,实现指定字段的聚合搜索

一、背景 es索引有一个文档CourseIndex&#xff0c;下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候&#…

MIT6.5840 Lab 1: MapReduce(6.824)

结果 介绍 在本实验中&#xff0c;您将构建一个MapReduce系统。您将实现一个调用应用程序Map和Reduce函数并处理文件读写的工作进程&#xff0c;以及一个将任务分发给工作进程并处理失败的工作进程的协调进程。您将构建类似于MapReduce论文的东西。&#xff08;注意&#xff1a…

nfs服务器--RHCE

一&#xff0c;简介 NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计 算机&#xff08;不同的计算机、不同的操作系统&#xff09;之间通过TCP/IP网络共享资源&#xff0c;主要在unix系…

Uni-APP+Vue3+鸿蒙 开发菜鸟流程

参考文档 文档中心 运行和发行 | uni-app官网 AppGallery Connect DCloud开发者中心 环境要求 Vue3jdk 17 Java Downloads | Oracle 中国 【鸿蒙开发工具内置jdk17&#xff0c;本地不使用17会报jdk版本不一致问题】 开发工具 HBuilderDevEco Studio【目前只下载这一个就…

ubuntu 16.04 中 VS2019 跨平台开发环境配置

su 是 “switch user” 的缩写&#xff0c;表示从当前用户切换到另一个用户。 sudo 是 “superuser do” 的缩写&#xff0c;意为“以超级用户身份执行”。 apt 是 “Advanced Package Tool” 的缩写&#xff0c;Ubuntu中用于软件包管理的命令行工具。 1、为 root 用户设置密码…

Java集合ConcurrentHashMap——针对实习面试

目录 Java集合ConcurrentHashMapConcurrentHashMap的特性是什么&#xff1f;HashMap和ConcurrentHashMap的区别&#xff1f;说说ConcurrentHashMap的底层实现 Java集合ConcurrentHashMap ConcurrentHashMap的特性是什么&#xff1f; 线程安全性 多线程并发读写安全&#xff1a…

游戏引擎学习第16天

视频参考:https://www.bilibili.com/video/BV1mEUCY8EiC/ 这些字幕讨论了编译器警告的概念以及如何在编译过程中启用和处理警告。以下是字幕的内容摘要&#xff1a; 警告的定义&#xff1a;警告是编译器用来告诉你某些地方可能存在问题&#xff0c;尽管编译器不强制要求你修复…

【题目3】C++类的设计——07年复试笔试题

【题目】07年C复试笔试真题 定义一个处理日期的类TDate&#xff0c;它有3个私有数据成员&#xff1a;Month,Day,Year和若干共有成员函数&#xff0c;实现如下要求[附条件解读] ①构造函数重载→创建无参构造函数有参构造函数 ②成员函数设置缺省参数→与④一同可用set()在类中实…

【STL】set,multiset,map,multimap的介绍以及使用

关联式容器 在C的STL中包含序列式容器和关联式容器 1.关联式容器&#xff1a;它里面存储的是元素本身&#xff0c;其底层是线性序列的数据结构&#xff0c;比如&#xff1a;vector&#xff0c;list&#xff0c;deque&#xff0c;forward_list(C11)等 2.关联式容器里面储存的…

VUE+SPRINGBOOT实现邮箱注册、重置密码、登录功能

随着互联网的发展&#xff0c;网站用户的管理、触达、消息通知成为一个网站设计是否合理的重要标志。目前主流互联网公司都支持手机验证码注册、登录。但是手机短信作为服务端网站是需要付出运营商通信成本的&#xff0c;而邮箱的注册、登录、重置密码&#xff0c;无疑成为了这…

ARM(安谋) China处理器

0 Preface/Foreword 0.1 参考博客 Cortex-M23/M33与STAR-MC1星辰处理器 ARM China&#xff0c;2018年4月established&#xff0c;独立运行。 1 处理器类型 1.1 周易AIPU 1.2 STAR-MC1&#xff08;星辰处理器&#xff09; STAT-MC1&#xff0c;主要为满足AIOT应用性能、功…

拉取docker镜像应急方法

发现许多docker hub镜像网址速度也慢得发指啦&#xff0c;如果想速度快点&#xff0c;可以考虑买个按量计费的公有云服务器&#xff0c;用他们的内网镜像&#xff0c;然后再导出&#xff0c;然后传到本地。 开通服务器 可以考虑个开通最低配的&#xff0c;这里我用的是腾讯的…

论文解读《Personalized LoRA for Human-Centered Text Understanding》

引言&#xff1a;感觉这篇蛮不错的&#xff0c;读一读。学一学如何在 LLMs&#xff08;文中说的是PLMs&#xff0c;不过我觉得可以理解为 LLMs&#xff09; 的结构上做改进 ✅ NLP 研 2 选手的学习笔记 笔者简介&#xff1a;Wang Linyong&#xff0c;NPU&#xff0c;2023级&…

SpringBoot+React养老院管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.入住合同文件上传2.添加和修改套餐的代码3.查看入住记录代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootReact框架开发的养老院管理系统。首先…

【C++】红黑树封装map—set

1 .关联式容器 C中的map是标准模板库&#xff08;STL&#xff09;中的一种关联容器&#xff0c;它存储的是键值对&#xff08;key-value pairs&#xff09;&#xff0c;其中每个键都是唯一的。 键值对&#xff1a; 用来表示具有一一对应关系的一种结构&#xff0c;该结构中一…

药房智链:中药实验管理的供应链优化

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足&#xff0c;创建了一个计算机管理中药实验管理系统的方案。文章介绍了中药实验管理系统的系…