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

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.kler.cn/a/398805.html

相关文章:

  • JavaScript中如何使用Promise处理异步操作?
  • 论文笔记(五十六)VIPose: Real-time Visual-Inertial 6D Object Pose Tracking
  • MSTP知识点
  • 论文笔记 SuDORMRF:EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION
  • 深入List集合:ArrayList与LinkedList的底层逻辑与区别
  • 在Node.js中如何使用TypeScript
  • wordpress建DTC独立站为产品添加价格区间选择
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质
  • Git的概念、安装、操作与分支管理和图形化界面TortoiseGit(小乌龟 )的安装与使用
  • 【2】猫眼娱乐后端开发面试题整理
  • Javaweb开发核心之应用上下文知识(笔记)
  • Android okhttp 网络链接各阶段监控
  • c++入门基础(三)
  • ElasticSearch-全文检索(一)基本介绍
  • Golang语言系列-哈希表
  • MySQL基础(初阶+进阶)(详解)
  • Java Function 的妙用:化繁为简的魔法师!
  • 条件竞争(ctf.show web87)
  • 图形最高分
  • Unreal engine5实现类似鬼泣5维吉尔二段跳
  • 基于YOLOv8深度学习的不良坐姿监测与语音提醒系统(PyQt5界面+数据集+训练代码)
  • Spring Boot【一】
  • 【保姆级】Mac上IDEA卡顿优化
  • STM32低功耗设计NFC与无线距离感应智能钥匙扣
  • 《探索Zynq MPSoC》学习笔记(三)
  • Leetcode160.相交链表