You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PROC SQL删除仅含单行数据的Unique ID对应行?

用PROC SQL筛选对应多行数据的Unique ID记录

需求:从给定数据表中,仅保留那些Unique ID对应2行数据的所有记录,删除仅对应单行的Unique ID的全部行(比如示例中的10001和10006)。

方法一:使用EXISTS子查询筛选

通过子查询统计每个Unique ID的行数,只保留行数为2的ID对应的所有行:

PROC SQL;
    CREATE TABLE filtered_data AS
    SELECT t1.*
    FROM original_data t1
    WHERE EXISTS (
        SELECT 1
        FROM original_data t2
        WHERE t2.Unique_ID = t1.Unique_ID
        GROUP BY t2.Unique_ID
        HAVING COUNT(*) = 2
    );
QUIT;

方法二:先统计符合条件的ID再关联

先筛选出有2行数据的Unique ID列表,再通过内连接获取这些ID的全部记录:

PROC SQL;
    CREATE TABLE filtered_data AS
    SELECT t1.*
    FROM original_data t1
    INNER JOIN (
        SELECT Unique_ID
        FROM original_data
        GROUP BY Unique_ID
        HAVING COUNT(*) = 2
    ) t2 ON t1.Unique_ID = t2.Unique_ID;
QUIT;

注意:把代码里的original_data替换成你实际使用的表名即可,两种方法都能实现需求,效果完全一致。

内容的提问来源于stack exchange,提问作者4gr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:02:24