mcpField
S
SQL Analysis

SQL Analysis

github.com/danhvb数据与数据库105 次安装
代码仓库

关于 SQL Analysis

面向业务分析师的 SQL 技能,可用于验证数据需求、了解当前数据状况并独立开展分析。内容涵盖查询基础、常见检查方法和只读探索实践。

主要功能

  1. 01SELECT 与筛选基础
  2. 02聚合与表连接
  3. 03数据质量检查
  4. 04流程与集成分析
  5. 05只读查询实践

适用场景

  1. 01验证迁移数据
  2. 02排查记录缺失或异常
  3. 03为利益相关者准备临时报告
  4. 04核对集成字段值映射

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/danhvb/my-ba-skills --skill sql-analysis

安装后在 Claude Code 中输入/sql-analysis确认已加载。

详细介绍

SQL 分析技能

目的

帮助业务分析师(BA)验证数据需求、了解当前数据状态,并独立进行数据分析,而不必完全依赖开发人员。

适用场景

  • 验证迁移数据。
  • 了解当前数据结构(As-Is)。
  • 排查用户问题(“为什么我看不到这个订单?”)。
  • 为利益相关者生成临时报告。

BA 的 SQL 核心概念

1. SELECT 语句
SELECT column1, column2   -- What do you want?
FROM table_name           -- From where?
WHERE condition           -- Filter logic
ORDER BY column1 DESC;    -- Sorting
2. 筛选(WHERE)
  • WHERE status = 'Active'(精确匹配)
  • WHERE quantity > 10(比较)
  • WHERE name LIKE 'Smith%'(部分匹配)
  • WHERE status IN ('New', 'Open')(列表)
  • WHERE end_date IS NULL(查找缺失数据)
3. 聚合(GROUP BY)

汇总数据。

SELECT status, COUNT(*) as total_orders
FROM orders
GROUP BY status;
4. 联接表(JOIN)

连接相关数据。

  • INNER JOIN:仅包含匹配的记录(A ∩ B)。“显示有订单的客户。”
  • LEFT JOIN:包含左表中的所有记录,以及右表中匹配的记录(A + A∩B)。“显示所有客户,以及他们的订单(如有)。”(适合查找没有订单的客户)

常见分析查询

数据质量检查

“是否存在电子邮件相同的重复客户?”

SELECT email, COUNT(*)
FROM customers
GROUP BY email
HAVING COUNT(*) > 1;

“是否存在没有有效用户的订单?”

SELECT o.order_id
FROM orders o
LEFT JOIN users u ON o.user_id = u.id
WHERE u.id IS NULL;
流程分析

“发运一个订单需要多长时间?”

SELECT 
    AVG(DATEDIFF(day, order_date, shipped_date)) as avg_days_to_ship,
    MAX(DATEDIFF(day, order_date, shipped_date)) as max_days
FROM orders
WHERE shipped_date IS NOT NULL;
集成规范验证

“‘付款方式’有哪些不同的值,以便我们进行映射?”

SELECT DISTINCT payment_method
FROM transactions;

最佳实践

  • 只读访问:确保你只有 SELECT 权限(ro-user)。
  • 限制结果数量:探索新表时,始终使用 LIMIT 10(或 TOP 10)。
  • 避免影响生产环境性能:高峰时段避免运行开销较大的查询(例如联接 5 个超大型表)。
  • 理解 NULL:COUNT(column) 会忽略 NULL;COUNT(*) 会统计所有内容。

工具

  • DBeaver:通用数据库工具。
  • Metabase / Redash:可视化 SQL 构建器。
  • Lark Base:可导入 CSV 结果以便分享。

评论

支持 Markdown