用途:该技能是 PostgreSQL 复杂查询模式的原子技能,提供生产可用的 CTE、窗口函数、递归查询、LATERAL 连接与聚合写法参考,适合需要编写或审查复杂 SQL 的场景。
主要能力:CTE 支持多步 WITH 链式组合;窗口函数示例含 ROW_NUMBER() OVER (PARTITION BY cat ORDER BY date DESC)、SUM(amount) OVER (ORDER BY date) 累计求和、LAG(value, 1) OVER (ORDER BY date) 取上一行;递归查询以 WITH RECURSIVE 实现层级遍历(从 parent_id IS NULL 出发 UNION ALL 递归连接);LATERAL 以 CROSS JOIN LATERAL 对每行做子查询限行;聚合通过 query_type 参数选择类型。
使用方式:参数 query_type 为必填字符串,取值 cte、window、recursive、lateral、aggregate;tables 为字符串数组,用于指定涉及表。调用形式为 Skill("postgresql-advanced-queries")。测试模板用 DO $$ ... $$ 匿名块创建临时表、插入数据、断言结果并清理。
限制与前置条件:需要 PostgreSQL 16+ 与中级 SQL 知识。文档列出常见错误及处理:42803 为 GROUP BY 错误,补全缺失列;54001 为查询过于复杂,拆分为 CTE;21000 返回多行,加 LIMIT 1。其余细节暂未提供。