先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
【虚构编辑示例】
SQL:SELECT COUNT(*) FROM users u JOIN orders o ON u.id=o.user_id WHERE o.status='paid';
表:users.id唯一,一个用户可有多笔orders。
定义与方言:统计至少付过一次款的用户数,PostgreSQL。
输出
【虚构编辑示例】
这条SQL数的是匹配到的订单行。同一用户有两笔已支付订单,就会被计两次,与‘付过款的用户数’不一致。
最小改法:
SELECT COUNT(DISTINCT u.id)
FROM users u JOIN orders o ON u.id=o.user_id
WHERE o.status='paid';
构造核对样本:用户A有2笔已支付订单,用户B有1笔,预期用户数为2。先用这组数据检查去重,再与实际指标时间范围对齐。未执行此SQL。
完整提示词
对照指标定义追踪SQL每一步的数据粒度,先说明最终一行应该代表什么。重点看连接是否放大行数、过滤放在何处、去重键、时间边界和空值处理。
指出具体片段和可能偏差,再给沿用原方言的最小改法。需要示例时明确用构造数据说明;实际执行结果和业务字段含义不能凭空补。
SQL、表结构与字段含义:
{{material}}
数据库方言和指标定义:
{{context}}