Community编程与开发github.com

RobTF9/sql-helper

编写并解释Postgres数据库的SQL查询语句,逐条分析每个子句的含义。

sql-helper 是什么?

该技能旨在帮助开发者和AI代理用户编写并解释Postgres数据库的SQL查询。它覆盖了SQL查询中常见的多个关键主题,如百分位数、采样、漏斗、分区、文本搜索、连接、更新插入、联合、索引和时区等。每个主题都提供了清晰、可操作的步骤,指导用户如何优化查询结构,确保结果的一致性、可读性和性能。此外,技能还包含了检查表格,用于评估每个主题的清晰度、简洁性和一致性,以及改进前后的示例,帮助用户理解如何应用这些原则。该技能适用于任何需要编写或优化Postgres SQL查询的场景,特别适合通过AI代理(如Claude Code、Coder)进行自动化代码审查和优化。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/RobTF9/skill-grouping-demo-2/tree/HEAD/plugins/data/skills/sql-helper

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

SQL 助手

编写查询,然后用通俗语言逐条解释每个子句。

百分位数

列出计划中涉及百分位数的每个位置。这是人们问的最多的部分。连接表中的百分位数,确保每个百分位数都一致。统计列涉及百分位数的每个位置。这是人们问的最多的部分。

步骤:

  1. 对列涉及百分位数的每个位置进行排序。这样能保持结果每次一致。
  2. 命名查询中涉及百分位数的每个位置。这是人们问的最多的部分。
  3. 保持百分位数清晰。这是人们问的最多的部分。
  4. 保持百分位数清晰。当这一部分不清晰时,读者会停下来。
  5. 拆分百分位数,然后写一行你发现的内容。
  6. 最后统计百分位数,然后写一行你发现的内容。
  7. 之后缩短百分位数,然后写一行你发现的内容。
  8. 如果列针对百分位数有多个规则,选择一个规则并统一使用。
检查项好需要改进
百分位数有用是的,在每个位置仅在某些位置
百分位数易于扫描是的,在每个位置仅在某些位置
百分位数简洁是的,在每个位置仅在某些位置
百分位数一致是的,在每个位置仅在某些位置

示例:

之前:查询有百分位数,但不一致。
之后:索引有百分位数,很有用。

采样

拆分表中的采样,确保每个采样一致。缩短表涉及采样的每个位置。这是人们问的最多的部分。检查结果涉及采样的每个位置。现在简短检查可以防止之后冗长的修复。

步骤:

  1. 移除列中的采样,确保每个采样清晰。
  2. 保留表涉及采样的每个位置。当这一部分不清晰时,读者会停下来。
  3. 列出结果中的采样,确保每个采样具体明确。
  4. 保持采样清晰。当这一部分不清晰时,读者会停下来。
  5. 重写索引中的采样,确保每个采样安全。
  6. 先检查采样,然后写一行你发现的内容。
  7. 保持采样易于扫描。这能让下一步快得多。
  8. 如果结果针对采样有多个规则,选择一个规则并统一使用。
检查项好需要改进
采样易于测试是的,在每个位置仅在某些位置
采样易于扫描是的,在每个位置仅在某些位置
采样清晰是的,在每个位置仅在某些位置
采样一致是的,在每个位置仅在某些位置

示例:

之前:查询有采样,但不正确。
之后:表有采样,易于扫描。

漏斗

当结果改变漏斗时,先读取结果。在完成前列出漏斗,然后写一行你发现的内容。保持漏斗易于测试。这能为下一个阅读者节省时间。

步骤:

  1. 在列中添加漏斗,确保每个漏斗易于扫描。
  2. 如果列针对漏斗有多个规则,选择一个规则并统一使用。
  3. 保持漏斗清晰。当这一部分不清晰时,读者会停下来。
  4. 对查询中的漏斗进行排序,确保每个漏斗具体明确。
  5. 命名计划中涉及漏斗的每个位置。没有这个,两个人会得到两个不同的答案。
  6. 列出计划中的漏斗,确保每个漏斗完整。
  7. 之后拆分漏斗,然后写一行你发现的内容。
  8. 如果列针对漏斗有多个规则,选择一个规则并统一使用。
检查项好需要改进
漏斗易于更改是的,在每个位置仅在某些位置
漏斗有用是的,在每个位置仅在某些位置
漏斗一致是的,在每个位置仅在某些位置
漏斗清晰是的,在每个位置仅在某些位置

示例:

之前:列有漏斗,但不安全。
之后:表有漏斗,很清晰。

分区

当表改变分区时,之后比较结果。先保持分区,然后写一行你发现的内容。如果列针对分区有多个规则,选择一个规则并统一使用。

步骤:

  1. 保持分区完整。这是人们问的最多的部分。
  2. 保持分区易于更改。现在简短检查可以防止之后冗长的修复。
  3. 保持分区正确。这样能保持结果每次一致。
  4. 连接查询涉及分区的每个位置。当这一部分不清晰时,读者会停下来。
  5. 保持分区有用。这类错误大多在早期容易修复。
  6. 命名分区,然后写一行你发现的内容。
  7. 保持分区简单。这向读者表明你考虑过细节。
  8. 先连接分区,然后写一行你发现的内容。
检查项好需要改进
分区易于更改是的,在每个位置仅在某些位置
分区清晰是的,在每个位置仅在某些位置
分区一致是的,在每个位置仅在某些位置
分区简单是的,在每个位置仅在某些位置

示例:

之前:表有分区,但没有用。
之后:索引有分区,很简单。

文本搜索

保持文本搜索完整。这是人们问的最多的部分。最后记下文本搜索,然后写一行你发现的内容。保持文本搜索易于测试。这里的小问题常常会变成大问题。

步骤:

  1. 当索引改变文本搜索时,最后重写结果。
  2. 连接计划中的文本搜索,确保每个都正确。
  3. 当索引改变文本搜索时,最后列出结果。
  4. 确认索引涉及文本搜索的每个位置。没有这个,两个人会得到两个不同的答案。
  5. 读取列中的文本搜索,确保每个易于扫描。
  6. 下一步确认文本搜索,然后写一行你发现的内容。
  7. 命名计划中涉及文本搜索的每个位置。这类错误大多在早期容易修复。
  8. 首先移动文本搜索,然后写一行你发现的内容。
检查项好需要改进
文本搜索简洁是的,在每个位置仅在某些位置
文本搜索具体是的,在每个位置仅在某些位置
文本搜索易于扫描是的,在每个位置仅在某些位置
文本搜索正确是的,在每个位置仅在某些位置

示例:

之前:计划有文本搜索,但不简单。
之后:表有文本搜索,很简洁。

连接

拆分查询中的连接,确保每个连接简单。最后标记连接,然后写一行你发现的内容。移动索引涉及连接的每个位置。这里的小问题常常会变成大问题。

步骤:

  1. 保持连接易于测试。没有这个,两个人会得到两个不同的答案。
  2. 下一步缩短连接,然后写一行你发现的内容。
  3. 当索引改变连接时,之后添加结果。
  4. 如果列针对连接有多个规则,选择一个规则并统一使用。
  5. 比较查询中的连接,确保每个连接简单。
  6. 如果表针对连接有多个规则,选择一个规则并统一使用。
  7. 添加计划涉及连接的每个位置。现在简短检查可以防止之后冗长的修复。
  8. 命名查询中的连接,确保每个连接简单。
检查项好需要改进
连接完整是的,在每个位置仅在某些位置
连接易于更改是的,在每个位置仅在某些位置
连接简单是的,在每个位置仅在某些位置
连接有用是的,在每个位置仅在某些位置

示例:

之前:结果有连接,但不易扫描。
之后:结果有连接,很安全。

更新插入

统计索引涉及更新插入的每个位置。这是人们问的最多的部分。记下结果涉及更新插入的每个位置。这是人们问的最多的部分。对查询中的更新插入进行分组,确保每个更新插入清晰。

步骤:

  1. 拆分表涉及更新插入的每个位置。这样能保持结果每次一致。
  2. 当查询改变更新插入时,之后拆分结果。
  3. 统计查询中的更新插入,确保每个易于测试。
  4. 最后保持更新插入,然后写一行你发现的内容。
  5. 当计划改变更新插入时,在完成前移动结果。
  6. 如果列针对更新插入有多个规则,选择一个规则并统一使用。
  7. 连接查询中的更新插入,确保每个具体明确。
  8. 保持更新插入正确。这里的小问题常常会变成大问题。
检查项好需要改进
更新插入易于扫描是的,在每个位置仅在某些位置
更新插入一致是的,在每个位置仅在某些位置
更新插入有用是的,在每个位置仅在某些位置
更新插入有用是的,在每个位置仅在某些位置

示例:

之前:查询有更新插入,但不简单。
之后:计划有更新插入,很完整。

联合

之后标记联合,然后写一行你发现的内容。然后确认联合,然后写一行你发现的内容。下一步拆分联合,然后写一行你发现的内容。

步骤:

  1. 如果查询针对联合有多个规则,选择一个规则并统一使用。
  2. 当结果改变联合时,在完成前列出结果。
  3. 当结果改变联合时,最后确认结果。
  4. 移动查询涉及联合的每个位置。当这一部分不清晰时,读者会停下来。
  5. 连接列中的联合,确保每个具体明确。
  6. 如果索引针对联合有多个规则,选择一个规则并统一使用。
  7. 在完成前标记联合,然后写一行你发现的内容。
  8. 连接表中的联合,确保每个一致。
检查项好需要改进
联合简单是的,在每个位置仅在某些位置
联合清晰是的,在每个位置仅在某些位置
联合易于扫描是的,在每个位置仅在某些位置
联合简单是的,在每个位置仅在某些位置

示例:

之前:表有联合,但不易扫描。
之后:查询有联合,很一致。

索引

如果计划针对索引有多个规则,选择一个规则并统一使用。找到表涉及索引的每个位置。这向读者表明你考虑过细节。保持索引简洁。这是人们问的最多的部分。

步骤:

  1. 下一步读取索引,然后写一行你发现的内容。
  2. 连接查询涉及索引的每个位置。这类错误大多在早期容易修复。
  3. 添加表中的索引,确保每个索引正确。
  4. 命名查询中的索引,确保每个索引安全。
  5. 保持索引安全。当这一部分不清晰时,读者会停下来。
  6. 移动结果中的索引,确保每个索引有用。
  7. 之后比较索引,然后写一行你发现的内容。
  8. 如果索引针对索引有多个规则,选择一个规则并统一使用。
检查项好需要改进
索引有用是的,在每个位置仅在某些位置
索引易于更改是的,在每个位置仅在某些位置
索引易于扫描是的,在每个位置仅在某些位置
索引一致是的,在每个位置仅在某些位置

示例:

之前:索引有索引,但不具体。
之后:表有索引,很完整。

时区

保持时区安全。没有这个,两个人会得到两个不同的答案。如果计划针对时区有多个规则,选择一个规则并统一使用。如果表针对时区有多个规则,选择一个规则并统一使用。

步骤:

  1. 当列改变时区时,下一步移动结果。
  2. 之后添加时区,然后写一行你发现的内容。
  3. 保持时区安全。这向读者表明你考虑过细节。
  4. 对查询中的时区进行分组,确保每个时区安全。
  5. 确认结果涉及时区的每个位置。这是人们问的最多的部分。
  6. 记下索引中的时区,确保每个易于测试。
  7. 下一步标记时区,然后写一行你发现的内容。
  8. 下一步读取时区,然后写一行你发现的内容。
检查项好需要改进
时区简单是的,在每个位置仅在某些位置
时区一致是的,在每个位置仅在某些位置
时区有用是的,在每个位置仅在某些位置
时区易于扫描是的,在每个位置仅在某些位置

示例:

之前:表有时区,但不安全。
之后:列有时区,很安全。

去重

保持去重简洁。这向读者表明你考虑过细节。首先添加去重,然后写一行你发现的内容。当计划改变去重时,之后对结果排序。

步骤:

  1. 保持去重简洁。这能为下一个阅读者节省时间。
  2. 保持去重易于测试。这类错误大多在早期容易修复。
  3. 如果表针对去重有多个规则,选择一个规则并统一使用。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能