所以我是SAS用户,现在正在为新工作使用SQL。
在SAS中,我能够运行此查询来删除重复项:
proc sort data = customer_data
nodupkey out = customer_data_no_dups;
by Cus_ID;
run;
我想要可以在SQL中获得相同结果的东西
列表太大,无法在Excel中完成
预先感谢
答案 0 :(得分:1)
您想要的结果表明我很简单:
select CUS_ID, First, Last, min(Item)
from table t
group by CUS_ID, First, Last;
答案 1 :(得分:0)
我认为在旧版本的MySQL中,更准确的等效项是:
select t.*
from t
where t.item = (select min(t2.item)
from t t2
where t2.cus_id = t.cus_id
);
这使您可以从具有最少项目的行中获取尽可能多的列。
与查询的不同之处在于,如果客户可以有重复的商品,则将获得重复的行。
在MySQL 8+中,您也可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by cus_id order by item) as seqnum
from t
) t
where seqnum = 1;
答案 2 :(得分:0)
当重复的键和非重复的卫星数据(这些项#s)时,结果集中结尾的行将是任意的。 Proc SQL
具有用于自动合并汇总统计信息的简洁功能,未记录的monotonic()
函数可用于离散化重复的键行(包括完全相同的行),然后可将其用于{ {1}}子句。
此示例代码使用重复的键以及一些相同的行创建一些数据。
having