Agent Skills
返回列表
💻

SQL 查询生成

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/sql-query-generation。

技能介绍

问题在哪

业务同学和工程师经常手里只有自然语言问题和一份(往往还不完整的)表结构,却要写出能跑、能维护、还别拖垮库的 SQL。难点通常不在「会不会写 SELECT」,而在:指标和实体怎么对应到表和列、一对多连接会不会把聚合数算歪、CTE 和窗口函数该用哪一层、以及上线前怎么判断会不会全表扫。

技能如何工作

该技能把请求拆成一条可重复的工作流:

  1. 解析意图——区分是要汇总指标还是行级明细,抽出过滤、分组、排序条件。
  2. 对齐模式——在 DDL 或表列清单里找表、列和外键路径,消歧义引用(例如「销售额」到底落在哪张表)。
  3. 选结构——按复杂度选用聚合、窗口函数、CTE 或子查询;多步计算优先 CTE,排名/累计用窗口函数,连接用显式 JOIN。
  4. 生成与校验——输出格式一致的 SQL(关键字大写、别名清晰),必要时跑 EXPLAIN / EXPLAIN ANALYZE,从执行计划里看顺序扫描、哈希连接、排序溢出等问题,并给出索引、谓词下推或重写建议。
  5. 说明假设——用白话解释查询在算什么、结果长什么样,以及依赖的模式或数据前提。

方言上覆盖 PostgreSQL、MySQL 8.0+、SQLite、SQL Server、BigQuery 等常见差异(如 CTE、窗口函数、QUALIFY 等)。

适用边界

  • 你需要提供问题 + 模式(DDL、表列列表或关系说明);列名与真实库不一致时,生成结果必须对照实际 DDL 再执行。
  • 自然语言若存在多表同名列或指标定义模糊,技能会倾向于限定别名或请你澄清,而不是瞎猜业务口径。
  • 探索性查询应带 LIMIT;深分页、时区边界、NULL 语义和除零等边缘情况,技能文档里有对应写法(如 NULLIF、COALESCE、半开区间日期过滤),但仍以你的业务定义为准。

使用场景

  • 业务方用口语描述多表指标(排名、同比、分组),你只有 DDL,需要落成带 CTE 或窗口函数的可读 SQL。
  • 生产环境报表在百万行量级耗时明显,需要对照 EXPLAIN 输出定位顺序扫描、连接顺序或排序溢出并重写。
  • 探索性分析时要把「前 N 客户、品类偏好、时间范围过滤」对齐到 orders、customers 等表,避免一对多连接把计数算膨胀。
  • 目标库是 PostgreSQL、MySQL 8+ 或 BigQuery,需要在同一套意图下选用对应方言的 CTE、窗口函数或 QUALIFY 等写法。

适合人员

  • 对接口头指标需求的数据分析师,要把「算什么、按什么筛、怎么排」准确对应到表和列。
  • 负责线上 SQL 性能的后端工程师或 DBA,需要依据执行计划建议索引、谓词下推或查询重构。
  • 持有 schema 文档却要交付复杂 JOIN 与汇总逻辑的全栈或数据工程师,希望输出带别名与注释的可维护语句。
  • 在仓库或业务库做临时探查的数据工程师,需要自然语言生成 SQL 并遵守 LIMIT、分页与时区边界等约束。