SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 702|回复: 3
打印 上一主题 下一主题

求助 [SQL分组查询的问题]

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-11-12 17:43:15 | 只看该作者

求助 [SQL分组查询的问题]

如对数据集中的分组变量,如果某个分组中既存在满足某种“属性一”的记录,也存在满足某种“属性二”的记录,且一般来说属性一和属性二是互斥的,则将该分组所对应的所有记录输出。如如下数据表:

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

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


希望用SQL语句实现。。。谢谢各位大侠了。。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-11-13 09:36:03 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-11-13 10:58:32 | 只看该作者

Re: 求助 [SQL分组查询的问题]

死猪头
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-11-13 15:28:20 | 只看该作者

Re: 求助 [SQL分组查询的问题]

啊,死猪头的方法好简单啊,呵呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 06:29 , Processed in 0.099892 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表