SQL 课程 10:带聚合函数的查询(第 1 部分)

产品分析常常不需要逐条查看商机,而是想快速得到一个总数:本月有多少商机、已成交金额是多少、平均成交金额大约多少。聚合函数会把多行记录压缩为一个汇总值,正适合回答这类问题。

本课使用 sales_pipeline 商机表。它记录了每笔商机的阶段和成交金额;你将从逐行浏览,升级到用一条查询得到业务概览。

在 SELECT 中使用聚合函数
SELECT 聚合函数(字段) AS 指标名称
FROM 表名
WHERE 筛选条件;

聚合函数把很多行变成一个答案

COUNT 用于计数,SUM 计算总和,AVG 计算平均值,MIN 和 MAX 分别找最小与最大值。除非后续使用 GROUP BY 分组,否则一条聚合查询通常只返回一行结果。

例如,销售负责人问“所有已成交商机累计带来了多少收入”,你不需要导出 4,000 多行再手工相加;SUM 就能在数据库中完成计算。

常用聚合函数

函数作用CRM 示例
COUNT(*)统计记录行数COUNT(*) AS opportunity_count
SUM(字段)计算数值总和SUM(close_value)
AVG(字段)计算数值平均值AVG(close_value)
MIN(字段)返回最小值MIN(close_value)
MAX(字段)返回最大值MAX(close_value)

先筛选,再汇总

WHERE 会在聚合前筛掉不需要的记录。若要计算已成交金额,应该先筛出 deal_stage = 'Won',再对 close_value 求和;否则跟进中和已流失商机也会混入结果。

NULL 会被 SUM、AVG、MIN、MAX 忽略;COUNT(*) 则会统计每一行。理解这个差异,能避免把“未关闭、没有金额”的商机误计入平均值。

计算已成交商机的总成交金额
SELECT SUM(close_value) AS won_close_value
FROM sales_pipeline
WHERE deal_stage = 'Won';

小提醒:聚合结果也应使用 AS 起清晰别名。页面会把 won_close_value 显示为“已成交金额合计”,SQL 中仍需使用原别名。

练习

每题都会返回一个汇总指标。请注意聚合字段、筛选条件和 AS 别名都属于验收范围。

表格:sales_pipeline(商机)

查询返回 0 行。

显示第 00
1 / 1
正在准备浏览器内 SQL 数据库…