产品经理用 AI 写 SQL 查询:提示词与 SQL 示例
作为负责需求分析、原型设计和版本推进的互联网产品经理,你可能也有同感:需求文档、用户反馈整理、竞品分析和各种对齐会议占满了时间,留给思考的空间很少。很多人知道要查什么数据,但写 SQL 时卡在关联、分组和窗口函数上。下面以产品经理的真实场景为例,演示用 AI 写 SQL 查询的完整流程:提供表结构和字段含义,用自然语言描述需求,让 AI 写 SQL 并解释每一步,再用小范围数据验证。
使用场景
产品经理需要从数据库里查“用户反馈”相关的数据:按功能模块统计最近一个月的反馈次数,还要和上个月对比。数据团队排期很满,自己写 SQL 又总是出错。现实中,产品经理还得兼顾“和设计确认新版首页交互”等日常事务,所以更需要一套拿来就能用的方法。
用什么工具
可以用 ChatGPT、Claude、DeepSeek 等对话助手,也可以用数据库客户端或 BI 工具内置的 AI 查询功能(如 DataGrip、DBeaver 的 AI 助手,以及不少 BI 平台的自然语言查询)。
编辑器里的编程助手(GitHub Copilot、通义灵码等)在写 SQL 文件时可以直接补全;对话助手适合解释复杂查询。
举个例子
设想一个虚构场景:小郑刚接手一部分新工作,既要完成“完成会员积分改版的需求文档”,又要准备“验收搜索优化效果”。面对需要写 SQL 查询的任务,小郑的做法是:先让 AI 按固定结构起草,再对照自己掌握的事实逐项修改,涉及未公开的产品规划、用户个人信息和内部数据的部分一律用代号替换。这样既节省了时间,也守住了准确性和隐私的底线。
分步操作
- 提供表名、字段名、字段类型和含义,不需要真实数据
- 说明数据库类型,例如 MySQL 8 或 PostgreSQL
- 用自然语言描述需求,最好附上期望结果的样子
- 让 AI 解释 SQL 的每个部分
- 先加 LIMIT 在测试库或小范围运行,核对结果
提示词模板(可直接复制)
下面的提示词可以直接复制,按产品经理的实际情况替换细节:
【背景】当前的难点是:开发资源被临时项目占用,积分改版可能延期一周。
数据库:MySQL 8.0
表 records(用户反馈),字段:
- id:主键
- category:功能模块,文本
- record_date:反馈日期,DATE
- amount:反馈次数,数值
- type:反馈类型,文本
需求:
1. 统计 2026 年 10 月每个 category 的 amount 合计和记录数
2. 同时给出 9 月的合计,以及环比变化百分比
3. 按 10 月合计从高到低排序
请写出 SQL,并逐段解释;如果 9 月没有数据,环比显示为 NULL。
效果示例(虚构演示)
示例输出如下(虚构内容,仅演示 AI 大致会给出什么样的结果):
WITH m AS ( SELECT category, SUM(CASE WHEN record_date >= '2026-10-01' AND record_date < '2026-11-01' THEN amount END) AS oct_total, COUNT(CASE WHEN record_date >= '2026-10-01' AND record_date < '2026-11-01' THEN 1 END) AS oct_cnt, SUM(CASE WHEN record_date >= '2026-09-01' AND record_date < '2026-10-01' THEN amount END) AS sep_total FROM records WHERE record_date >= '2026-09-01' AND record_date < '2026-11-01' GROUP BY category ) SELECT category, oct_total, oct_cnt, sep_total, ROUND((oct_total - sep_total) / NULLIF(sep_total, 0) * 100, 1) AS mom_pct FROM m ORDER BY oct_total DESC;解释:先用条件聚合一次算出两个月的数据,NULLIF 避免除以 0,WHERE 限定时间范围以利用日期索引。
注意示例中所有内容都是虚构的。实际使用时,AI 的输出质量取决于你提供的材料是否完整、要求是否具体。
实用技巧与常见坑
- 表结构描述越准确,SQL 越可用;字段含义不清时 AI 会猜。
- 先在测试库或加 LIMIT 运行,大表上的错误查询可能拖慢数据库。
- AI 不知道你们的业务口径(比如是否剔除退款),要在需求中写明。
给产品经理的特别提醒
把目标用户、业务目标和约束条件写清楚,AI 生成的需求和方案才不会空泛。还有一点很关键:AI 不了解你们的真实用户和业务数据,它提出的方案只能当作讨论起点。
还可以这样用
- 解释他人的 SQL:把复杂查询交给 AI,让它用中文说明在做什么。
- 优化慢查询:附上执行计划,让 AI 给出索引和改写建议。