S
面向产品经理的交互式SQL教学
通过真实业务数据,练习产品分析 SQL。
SQL 课程 9:带表达式的查询
SELECT 后面不只能写原始字段,还可以写表达式:对数值做加、减、乘、除,或把常量和字段组合起来。表达式能把原始业务记录变成更便于解释的分析指标。
例如客户档案中的 revenue 以“百万美元”为单位,直接除以 employees 就能粗略观察单位员工对应的营收规模;用当前年份减去成立年份,则能得到客户经营年限。
在 SELECT 中计算新字段
SELECT 原字段,
表达式 AS 新字段名
FROM 表名;表达式会生成一列新的结果,不会修改原表
AS 用来给计算结果起一个可读的别名。原始 accounts 表没有 revenue_per_employee 这一列,但查询运行后,结果表会多出这一列;关闭页面或换一条查询后,原表仍然保持不变。
别名最好描述业务含义。与其叫 result1,不如叫 company_age 或 annual_revenue_usd,后续做图表、交接分析或和同事沟通都会轻松很多。
计算每位员工对应的营收规模
SELECT account,
revenue / employees AS revenue_per_employee
FROM accounts;常用算术运算符
表达式遵循常见的数学优先级:乘除优先于加减;复杂计算可以用括号明确顺序。数值字段参与计算时不需要引号。
把原始数值转成分析指标
| 运算符 | 用途 | CRM 示例 |
|---|---|---|
| + | 相加 | revenue + 100 |
| - | 相减或计算差值 | 2026 - year_established |
| * | 相乘或单位换算 | revenue * 1000000 |
| / | 相除,计算比率或人均值 | revenue / employees |
| ( ) | 明确先后顺序 | (revenue * 1000000) / employees |
小提醒:计算前先确认单位。本数据的 revenue 单位是“百万美元”,要换算为美元需要乘以 1,000,000。
别把“算出来”误当成“有业务意义”
表达式很容易写,但指标是否有意义需要业务判断。人均营收可帮助粗略比较不同规模客户;它不等于客户真实的人效,也不能单独作为客户价值判断依据。
产品分析中的好习惯是同时写清计算公式、单位和使用场景。这样其他人才能复算,也知道指标的边界。
练习
计算列需要使用 AS 起别名。系统会同时核对计算公式、列名和完整结果。
表格:accounts(客户档案)
显示第 0–0 行
第 1 / 1 页
正在准备浏览器内 SQL 数据库…