温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用聚合函数

发布时间:2026-07-26 16:25:13 来源:亿速云 阅读:92 作者:小樊 栏目:数据库

聚合函数(Aggregate Functions)通常用在 SQL 查询 中,用来对一组数据进行汇总计算,比如求和、平均值、最大值、最小值、计数等。下面我用通俗解释 + 常见用法 + 示例来说明。


一、常见的聚合函数

函数 作用
COUNT() 统计行数
SUM() 求和
AVG() 求平均值
MAX() 求最大值
MIN() 求最小值

二、基本用法(不分组)

1️⃣ 统计行数

SELECT COUNT(*) FROM 表名;

统计表中一共有多少行

SELECT COUNT(列名) FROM 表名;

统计该列非 NULL 的值有多少个


2️⃣ 求和

SELECT SUM(金额) FROM orders;

计算 orders 表中所有金额的总和


3️⃣ 平均值

SELECT AVG(成绩) FROM student;

4️⃣ 最大值 / 最小值

SELECT MAX(价格), MIN(价格) FROM product;

三、配合 GROUP BY 分组使用(重点)

示例表:orders

id user_id amount
1 1 100
2 1 200
3 2 150

按用户统计订单总金额

SELECT user_id, SUM(amount)
FROM orders
GROUP BY user_id;

✅ 结果:

user_id SUM(amount)
1 300
2 150

四、配合 HAVING 过滤分组结果

⚠️ WHERE 不能过滤聚合结果,要用 HAVING

查询订单总金额大于 200 的用户

SELECT user_id, SUM(amount) AS total
FROM orders
GROUP BY user_id
HAVING SUM(amount) > 200;

五、聚合函数 + 其他列注意事项

❌ 错误写法(某些数据库不支持):

SELECT user_id, amount, SUM(amount)
FROM orders;

✅ 正确写法(要么分组,要么只聚合):

SELECT user_id, SUM(amount)
FROM orders
GROUP BY user_id;

六、常见组合用法

SELECT
  user_id,
  COUNT(*) AS 订单数,
  SUM(amount) AS 总金额,
  AVG(amount) AS 平均金额,
  MAX(amount) AS 最大金额
FROM orders
GROUP BY user_id;

七、不同数据库的小差异

数据库 说明
MySQL 默认允许非标准 GROUP BY
Oracle / PostgreSQL 要求 SELECT 中的列必须在 GROUP BY 中
SQL Server 默认严格

如果你愿意,可以告诉我:

  • 你用的是 MySQL / Oracle / SQL Server / PostgreSQL
  • 或者你有一个具体 SQL 场景

我可以直接帮你写对应的 SQL ✅

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI