SQL 平均值(AVG)

SQL 平均值(AVG)

SQL 平均值(AVG)

SQL 中,可以使用 AVG 函数来计算数值列的平均值。AVG 函数返回数值列中所有数值的平均值。

1. AVG 函数的基本用法

AVG 函数的基本语法如下:

SELECT AVG(column_name)
FROM table_name;

其中,column_name 是要计算平均值的列名,table_name 是要从中取值的表名。使用 AVG 函数可以计算该列的平均值。

示例:

假设我们有一个表 students,记录了学生的考试成绩,包含两列:namescore

CREATE TABLE students (
    name VARCHAR(100),
    score INT
);

INSERT INTO students (name, score) VALUES
    ('Alice', 80),
    ('Bob', 90),
    ('Charlie', 85),
    ('David', 95),
    ('Eve', 75);

现在我们想计算学生的平均成绩,可以使用 AVG 函数:

SELECT AVG(score)
FROM students;

运行结果为:

AVG(score)
85.0

这表示学生的平均成绩为 85.0 分。

2. AVG 函数的使用场景

常见的一种使用场景是计算某一数值列的平均值。例如上面的示例中,我们计算了学生的平均成绩。

除了计算单个列的平均值外,我们还可以根据条件计算平均值。下面是一个示例:

假设我们有一个表 sales,记录了某商店每天的销售额,包含两列:date(日期)和 amount(销售额)。

CREATE TABLE sales (
    date DATE,
    amount DECIMAL(10,2)
);

INSERT INTO sales (date, amount) VALUES
    ('2022-01-01', 100.50),
    ('2022-01-01', 200.75),
    ('2022-01-02', 150.25),
    ('2022-01-02', 180.90),
    ('2022-01-03', 300.80);

现在我们想计算每天的平均销售额。可以使用 AVG 函数和 GROUP BY 子句来实现:

SELECT date, AVG(amount)
FROM sales
GROUP BY date;

运行结果为:

date AVG(amount)
2022-01-01 150.625
2022-01-02 165.575
2022-01-03 300.800

这表示每天的平均销售额分别为 150.625、165.575 和 300.800。

3. AVG 函数的注意事项

在使用 AVG 函数时,需要注意以下几点:

  • AVG 函数只能用于数值列,不能用于非数值列。如果尝试对非数值列使用 AVG 函数,将会导致错误。
  • AVG 函数忽略 NULL 值,不会将其计算在平均值中。
  • AVG 函数返回的结果默认为浮点型。如果需要返回整数型的平均值,可以使用 CAST 函数将其转换为整数。

示例:

假设我们有一个表 orders,记录了某在线商店的订单信息,包含两列:order_idtotal_amount(订单总金额)。

CREATE TABLE orders (
    order_id INT,
    total_amount DECIMAL(10,2)
);

INSERT INTO orders (order_id, total_amount) VALUES
    (1, 100.50),
    (2, 200.75),
    (3, NULL),
    (4, 150.25),
    (5, 180.90),
    (6, 300.80);

现在我们想计算非 NULL 订单总金额的平均值。

SELECT AVG(total_amount)
FROM orders
WHERE total_amount IS NOT NULL;

运行结果为:

AVG(total_amount)
185.4666666666667

这表示非 NULL 订单总金额的平均值为 185.47。

如果我们希望返回整数型的平均值,可以使用 CAST 函数将其转换为整数:

SELECT CAST(AVG(total_amount) AS INT)
FROM orders
WHERE total_amount IS NOT NULL;

运行结果为:

CAST(AVG(total_amount) AS INT)
185

这表示非 NULL 订单总金额的整数型平均值为 185。

4. 总结

本文介绍了 SQL 中的 AVG 函数的用法。通过 AVG 函数,我们可以方便地计算数值列的平均值。除了基本的用法外,我们还探讨了根据条件计算平均值的方法,并提醒了一些需要注意的事项。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程