欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > sql中的聚合函数

sql中的聚合函数

2024/11/18 18:57:30 来源:https://blog.csdn.net/error_log7/article/details/143834162  浏览:    关键词: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中,否则会报错。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com