进阶技能 · 取数分析

SQL数据分析

当业务数据沉淀进数据库,如何快速取出来分析?SQL 是与数据对话的语言。本课程帮助分析人员掌握 SELECT 查询、聚合、分组与多表关联,能够自主从 ERP/MES/WMS 等系统数据库中提取并分析业务数据,实现数据驱动洞察。

完成本课程后,你将能够:

1

读懂表结构

理解库、表、字段、记录的关系,知道业务数据存在哪

2

写出查询

用 SELECT/FROM/WHERE 提取所需的业务数据子集

3

聚合分组

用 GROUP BY/聚合函数做汇总统计与多维分析

4

多表关联

用 JOIN 把分散在多个表的数据拼成完整视图

会取数,才不依赖别人

报表系统只能看固定视图,但真实的业务问题千变万化——「A车间上月合格品有多少?」「哪些供应商交期延误最多?」这类临时取数需求,如果每次都找IT,既慢又被动。掌握 SQL,分析人员就能自助取数,把时间花在分析而非等待上。

  • 自助取数: 不再排队等报表,想看什么自己取。
  • 灵活分析: 任意维度组合筛选、汇总、关联,满足个性化问题。
  • 贴近源头: 直接读取业务系统底层数据,口径最真实。
一句话理解: SQL 不是程序员的专利,它是业务分析人员与数据库对话的通用语言,是数据驱动决策的「取数钥匙」。

最常用的 SQL 子句

子句作用典型写法
SELECT指定要查哪些列SELECT 工单号, 数量
FROM指定从哪张表查FROM mes_workorder
WHERE行级筛选条件WHERE 状态='完成'
GROUP BY按列分组汇总GROUP BY 车间
ORDER BY结果排序ORDER BY 数量 DESC
JOIN多表关联JOIN erp_item ON 物料编码
执行顺序提醒: 书写顺序是 SELECT→FROM→WHERE→GROUP BY→ORDER BY,但数据库实际执行顺序是 FROM→WHERE→GROUP BY→SELECT→ORDER BY,理解顺序有助于排查「为什么别名在 WHERE 里用不了」这类问题。

三个典型查询场景

① 各车间上月产量汇总

SELECT 车间, SUM(数量) AS 总产量
FROM mes_workorder
WHERE 状态 = '完成'
  AND 完工日期 >= '2026-08-01'
  AND 完工日期 < '2026-09-01'
GROUP BY 车间
ORDER BY 总产量 DESC;

② 交期延误最多的供应商 TOP5

SELECT s.供应商名称, COUNT(*) AS 延误次数
FROM erp_po p
JOIN erp_supplier s ON p.供应商 = s.编码
WHERE p.实际到货 > p.应交货
GROUP BY s.供应商名称
ORDER BY 延误次数 DESC
LIMIT 5;

③ 关联物料名称查不良率

SELECT i.物料名称,
       SUM(q.不良数)*1.0/SUM(q.生产数) AS 不良率
FROM mes_quality q
JOIN erp_item i ON q.物料编码 = i.编码
GROUP BY i.物料名称
HAVING 不良率 > 0.02;

写好 SQL 的五个习惯

01

先小后大

先 LIMIT 取少量数据验证逻辑,再放开全量查询

02

明确口径

确认「完成」「不良」等业务状态的定义与字段

03

善用别名

给表/列起别名,长查询更易读、不易错

04

注意性能

大表查询加时间范围,避免全表扫描拖垮库

05

结果复核

抽样核对总量与明细,确保取数准确无误

06

留存复用

把常用查询保存为视图/脚本,沉淀可复用资产

掌握 SQL,让数据主动说话

从「等人出报表」到「自己取数分析」,是分析人员能力跃迁的关键一步。

回顾 IT 系统应用 → 下一步学 Excel 高级分析 →