如何用Teradata查询numoflaptop字段增量为+1的记录?
Teradata 查询方案:筛选笔记本数量增量的家庭记录
要识别新增笔记本电脑的家庭,只需筛选出numoflaptop字段值比该家庭上一条记录更大的条目。假设你的表名为sample_table,包含family、action、numoflaptop字段,可使用以下SQL:
SELECT family, action, numoflaptop FROM ( SELECT family, action, numoflaptop, -- 按家庭分组,按时间顺序取上一条记录的笔记本数量 LAG(numoflaptop) OVER (PARTITION BY family ORDER BY 操作时间字段) AS prev_num FROM sample_table ) t -- 筛选当前数量大于上一条的记录,首次购买时上一条值为0 WHERE numoflaptop > COALESCE(prev_num, 0);
关键说明:
PARTITION BY family:限定仅在同一个家庭的记录范围内做比较ORDER BY 操作时间字段:请替换为表中实际的时间/排序字段(如操作时间、记录创建时间),确保能准确获取每个家庭的操作先后顺序COALESCE(prev_num, 0):处理每个家庭的第一条记录,默认之前的笔记本数量为0,所以首次购买(数量从0增加)也会被识别为增量记录
如果表中没有时间字段,可改用自增主键或ROW_NUMBER()生成的序号作为排序依据,保证记录顺序正确。
内容的提问来源于stack exchange,提问作者sqlenthusiast
相关产品推荐
相关产品推荐

