17370845950

如何使用mysqlAVG SUM函数_mysql AVG SUM函数使用方法
AVG()计算平均值,SUM()计算总和,两者均忽略NULL值;可用于SELECT语句中统计数值字段,支持WHERE筛选和GROUP BY分组,常配合AS别名和ROUND()函数提升结果可读性。

在MySQL中,AVG()SUM() 是常用的聚合函数,用于对数据进行统计计算。它们通常与 SELECT 语句结合使用,尤其适合处理数值类型的字段,比如价格、数量、分数等。

AVG() 函数:计算平均值

AVG() 函数用于返回某列的平均值,忽略 NULL 值。

基本语法:

SELECT AVG(列名) FROM 表名 [WHERE 条件];

示例:
假设有一个名为 orders 的表,包含以下字段:
- order_id
- customer_id
- amount(订单金额)

要计算所有订单的平均金额:

SELECT AVG(amount) AS avg_amount FROM orders;

结果会返回一个名为 avg_amount 的列,显示平均订单金额。

也可以结合 WHERE 条件筛选数据:

SELECT AVG(amount) AS avg_amount FROM orders WHERE customer_id = 100;

这表示只计算客户 ID 为 100 的订单平均金额。

SUM() 函数:计算总和

SUM() 函数用于返回某列所有值的总和,同样会忽略 NULL 值。

基本语法:

SELECT SUM(列名) FROM 表名 [WHERE 条件];

示例:
继续使用 orders 表,计算所有订单的总金额:

SELECT SUM(amount) AS total_amount FROM orders;

如果只想计算某个时间段内的总销售额:

SELECT SUM(amount) AS monthly_total FROM orders WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

结合 GROUP BY 使用

实际应用中,常将 AVG 和 SUM 与 GROUP BY 配合,按某一字段分组统计。

例如,按客户分组,查看每个客户的订单平均金额和总金额:

SELECT customer_id, AVG(amount) AS avg_amount, SUM(amount) AS total_amount FROM orders GROUP BY customer_id;

这样可以清晰地看到每位客户的消费情况。

注意事项

  • AVG 和 SUM 只适用于数值类型字段(如 INT、DECIMAL、FLOAT 等)。
  • 若目标列全部为 NULL,函数将返回 NULL。
  • 使用别名(AS)可让查询结果更易读。
  • 配合 ROUND() 函数可控制小数位数,例如:
    SELECT ROUND(AVG(amount), 2) AS avg_amount FROM orders;

基本上就这些。掌握 AVG 和 SUM 能快速完成基础数据分析,是写 SQL 查询的必备技能。