SAS中文论坛

标题: 求助 [SQL分组查询的问题] [打印本页]

作者: shiyiming    时间: 2009-11-12 17:43
标题: 求助 [SQL分组查询的问题]
如对数据集中的分组变量,如果某个分组中既存在满足某种“属性一”的记录,也存在满足某种“属性二”的记录,且一般来说属性一和属性二是互斥的,则将该分组所对应的所有记录输出。如如下数据表:

MESHCODE,NAME
HT00,第一出口入口
HT00,第一入口出口
HT00,第二出口入口
HT00,第三出口
MT00,第四入口出口
NT00,第五出口入口

需要将满足这样分组中的所有记录输出:该组中既有“%出口入口”也有“%入口出口”,对以上数据表输出的是:
HT00,第一出口入口
HT00,第一入口出口
HT00,第二出口入口
HT00,第三出口


希望用SQL语句实现。。。谢谢各位大侠了。。。
作者: shiyiming    时间: 2009-11-13 09:36
标题: Re: 求助 [SQL分组查询的问题]
[code:1dmjsdm6]data raw;
        input MESHCODE $4. NAME $20.;
        datalines;
HT00 第一出口入口
HT00 第一入口出口
HT00 第二出口入口
HT00 第三出口
MT00 第四入口出口
NT00 第五出口入口
;
run;
proc sql;
        create table tmp2 as
        select a.*,b.namsum,b.namno
        from (select *,
                        (case when name like '%出口入口' then 1
                              when name like '%入口出口' then -1
                                  else 0 end) as namenum
                        from raw) as a left join
                (select MESHCODE,count(MESHCODE) as namno,sum(namenum) as namsum
                from (select *,
                        (case when name like '%出口入口' then 1
                              when name like '%入口出口' then -1
                                  else 0 end) as namenum
                        from raw)
                where namenum ne 0
                group by MESHCODE) as b
        on a.MESHCODE=b.MESHCODE
        where abs(b.namsum) lt b.namno;
quit;
[/code:1dmjsdm6]
作者: shiyiming    时间: 2009-11-13 10:58
标题: Re: 求助 [SQL分组查询的问题]
死猪头
作者: shiyiming    时间: 2009-11-13 15:28
标题: Re: 求助 [SQL分组查询的问题]
啊,死猪头的方法好简单啊,呵呵。




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2