MySQL中的AVG()
函数用于计算某列的平均值。它是一个聚合函数,可以对一列数据进行求平均计算。
AVG()
函数会忽略NULL值。如果你想包含NULL值作为0进行计算,你需要使用COALESCE()
函数。
AVG([DISTINCT] expr)
expr
是你想要求平均值的列。DISTINCT
关键字可选,用于返回expr的不同值的平均值。假设有一个名为students
的表,其中包含id
, name
, 和score
列。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
score INT
);
插入一些数据:
INSERT INTO students (name, score) VALUES ('Alice', 85), ('Bob', 90), ('Charlie', 78), ('David', NULL);
计算所有学生的平均分数:
SELECT AVG(score) AS average_score FROM students;
如果你想计算不同学生的平均分数(即每个学生的平均分数),你可以使用GROUP BY
语句:
SELECT name, AVG(score) AS average_score FROM students GROUP BY name;
COALESCE()
函数将其转换为0。SELECT AVG(COALESCE(score, 0)) AS average_score FROM students;
COALESCE()
函数。AVG()
函数可能会导致性能问题。可以考虑使用子查询或者临时表来优化性能。SELECT AVG(score) AS average_score FROM (SELECT score FROM students) AS subquery;
请注意,以上链接仅为示例,实际使用时请参考最新的官方文档或资源。
领取专属 10元无门槛券
手把手带您无忧上云