Agent Skills
返回列表
💻

SQL 查询生成器

开发编程 更新于 2026.08.30

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

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

技能介绍

写复杂分析查询的痛点通常不在语法,而在把一句自然语言问题正确翻译成执行计划。"过去 12 个月支出最高的前 5 个客户,并对比上一周期"这句话背后,至少藏着四个坑:sales 到底指 orders 表还是 revenue 列;多个表同名的 id、status 如何限定;一对多关系导致的 COUNT(*) 膨胀;以及写完才发现对 500 万行的 orders 做了顺序扫描。sql-query-generation 要处理的就是这层"意图到模式"的映射,以及事后的成本检查。

它如何工作

技能按六个步骤推进:

  1. 解析请求。区分汇总请求与行级明细请求,提取指标、实体、过滤条件、排序与分组。
  2. 映射模式。从 DDL 或表列清单定位相关表和列,解决模糊引用;沿外键关系确定连接路径,避免不必要的 JOIN 放大结果集。
  3. 选择查询结构。简单聚合直接写;多步计算用 CTE 拆成命名步骤;运行总计、排名、分区内比较用窗口函数。
  4. 生成 SQL。统一格式:关键字大写、标识符小写、表别名、子句缩进;计算列必须带别名,复杂逻辑补注释。
  5. 验证与优化。跑 EXPLAIN ANALYZE,重点找全表扫描、大表上的哈希连接、未索引列上的排序;估计成本高时建议加索引或改写查询。
  6. 返回结果。同时给出通俗解释、预期输出格式,以及对模式和数据做过的假设。

支持的方言

PostgreSQL 的 CTE、窗口函数、LATERAL 连接、EXPLAIN ANALYZE;MySQL 8.0+ 的公共表表达式与窗口函数;SQLite 3.25+ 的轻量查询与窗口函数;SQL Server 的 T-SQL 扩展、CROSS APPLY、查询存储分析;BigQuery 的 STRUCT/ARRAY 类型、QUALIFY 子句与基于插槽的成本估算。

边界与注意点

几个容易被忽略的细节值得单独列出:聚合函数会静默忽略 NULL,当 NULL 表示"无销售"时,应在聚合前用 COALESCE(col, 0) 并注明假设;比率类指标的分母包一层 NULLIF(denominator, 0),让除零返回 NULL 而不是报错;按日期过滤用 >= '2024-01-01' AND < '2025-01-01' 而不是 BETWEEN,后者会包含结束日的午夜;探索性查询始终带 LIMIT,生产查询考虑键集分页。另外,自然语言里的列名和类型经常与真实 DDL 不一致,最终查询必须在目标模式上实际执行一遍再交付。

使用场景

  • 拿到一句业务分析问题,需要从 DDL 中找出相关表并写出正确聚合或窗口函数查询。
  • 多步计算的报表查询嵌套太深,需要用 CTE 重写成可读、易维护的命名步骤。
  • 线上查询跑得很慢,需要通过 EXPLAIN ANALYZE 定位顺序扫描和排序溢出的原因。
  • 比率类指标分母可能为零,需要在 SQL 中处理除零异常并明确 NULL 的业务含义。

适合人员

  • 需要把分析问题写成多表关联和聚合查询的数据分析师,用于验证指标口径。
  • 需要为报表编写窗口函数、CTE 并排查慢查询的后端工程师。
  • 需要把固定报表需求翻译成可复用 SQL 的 BI 或数据产品开发人员。
  • 需要按官方方式分析查询存储和执行计划的 SQL Server 运维工程师。