SQL查询写作技能Skill query-writing

此技能专注于SQL查询的编写和执行,覆盖从基础单表查询到高级多表JOIN和聚合操作,适用于数据分析、数据工程和数据库管理领域,关键词:SQL查询、数据分析、数据库、数据工程、商业智能。

数据工程 0 次安装 0 次浏览 更新于 3/25/2026

名称: 查询写作 描述: 用于编写和执行SQL查询 - 从简单的单表查询到复杂的多表JOIN和聚合

查询写作技能

何时使用此技能

当您需要通过编写和执行SQL查询来回答问题時使用此技能。

简单查询的工作流

对于关于单个表的简单问题:

  1. 识别表 - 哪个表有数据?
  2. 获取模式 - 使用sql_db_schema查看列
  3. 编写查询 - 使用WHERE/LIMIT/ORDER BY选择相关列
  4. 执行 - 使用sql_db_query运行查询
  5. 格式化答案 - 清晰地呈现结果

复杂查询的工作流

对于需要多个表的问题:

1. 计划方法

使用write_todos来分解任务:

  • 识别所有需要的表
  • 映射关系(外键)
  • 计划JOIN结构
  • 确定聚合

2. 检查模式

对每个表使用sql_db_schema以找到连接列和所需字段。

3. 构建查询

  • SELECT - 列和聚合
  • FROM/JOIN - 在外键等于主键上连接表
  • WHERE - 在聚合之前筛选
  • GROUP BY - 所有非聚合列
  • ORDER BY - 有意义地排序
  • LIMIT - 默认5行

4. 验证和执行

检查所有JOIN都有条件,GROUP BY正确,然后运行查询。

示例:按国家收入

SELECT
    c.Country,
    ROUND(SUM(i.Total), 2) as TotalRevenue
FROM Invoice i
INNER JOIN Customer c ON i.CustomerId = c.CustomerId
GROUP BY c.Country
ORDER BY TotalRevenue DESC
LIMIT 5;

质量指南

  • 只查询相关列(不使用SELECT *)
  • 总是应用LIMIT(默认5)
  • 使用表别名以提高清晰度
  • 对于复杂查询:使用write_todos来计划
  • 绝不使用DML语句(INSERT, UPDATE, DELETE, DROP)