首页 > 解决方案 > 如果观察值(记录)在变量(列)中重复,则删除它

问题描述

这是我的数据:

在此处输入图像描述

我喜欢编写一个代码来删除第二个观察值(突出显示)如果 Var1 重复且 Var3 为 1。所以我的结果表如下所示:

在此处输入图像描述

此外,这些重复可能会以任何顺序弹出。例如,Var3 在重复序列的开头、中间和结尾都可以是“1”。

谢谢

标签: sqlsas

解决方案


如果我理解正确,您希望仅在它们是 give 的唯一值时才保留“1”值var1。如果这是正确的,那么在 SQL 中执行此操作的一个说法是:

select t.*
from t
where var3 <> 1 or
      not exists (select 1 from t t2 where t2.var1 = t.var1 and t2.var3 <> 1);

推荐阅读