楼主: xing-_-he
1752 6

求助 [SQL分组查询的问题] [推广有奖]

  • 0关注
  • 0粉丝

高中生

22%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
139 点
帖子
8
精华
0
在线时间
43 小时
注册时间
2009-2-3
最后登录
2011-7-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

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

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

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


希望用SQL语句实现。。。谢谢各位大侠了。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql sql语句 MESH name code 求助 分组 查询 sql

回帖推荐

xiaosanmao 发表于3楼  查看完整内容

data a; input MESHCODE $ NAME $ 40.; cards; HT00 第一出口入口 HT00 第一入口出口 HT00 第二出口入口 HT00 第三出口 MT00 第四入口出口 NT00 第五出口入口 ; run; proc sql;create table b1 as select * from a where index(name ,"出口入口"); create table b2 as select * from a where index(name ,"入口出口"); create table b3 as select * from b1 where exists (select * from b2 where b1.MESHCODE=b ...

本帖被以下文库推荐

沙发
qzuxwj138 发表于 2009-11-13 10:42:39 |只看作者 |坛友微信交流群
data a;
input MESHCODE $ NAME $ 40.;
cards;
HT00 第一出口入口
HT00 第一入口出口
HT00 第二出口入口
HT00 第三出口
MT00 第四入口出口
NT00 第五出口入口
;
run;
proc sql;
create table b as
select * from a where MESHCODE='HT00' and name like '%出口入口%'
union
select * from a where MESHCODE='HT00' and name like '%入口出口%';
quit;


写的比较挫,见谅!

使用道具

藤椅
xiaosanmao 发表于 2009-11-13 12:47:02 |只看作者 |坛友微信交流群
xing-_-he 发表于 2009-11-12 14:57
如对数据集中的分组变量,如果某个分组中既存在满足某种“属性一”的记录,也存在满足某种“属性二”的记录,且一般来说属性一和属性二是互斥的,则将该分组所对应的所有记录输出。如如下数据表:

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

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


希望用SQL语句实现。。。谢谢各位大侠了。。。
data a;
input MESHCODE $ NAME $ 40.;
cards;
HT00 第一出口入口
HT00 第一入口出口
HT00 第二出口入口
HT00 第三出口
MT00 第四入口出口
NT00 第五出口入口
;
run;
proc sql;create table b1 as select * from a where index(name ,"出口入口");
create table b2 as select * from a where index(name ,"入口出口");
create table b3 as select * from b1 where  exists (select * from b2 where b1.MESHCODE=b2.MESHCODE);
create table final as select * from a where  exists (select * from b3 where a.MESHCODE=b3.MESHCODE);quit;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

板凳
xing-_-he 发表于 2009-11-13 13:21:18 |只看作者 |坛友微信交流群
2#楼的方法遗漏了一条记录“HT00 第三出口

使用道具

报纸
qzuxwj138 发表于 2009-11-13 15:44:33 |只看作者 |坛友微信交流群
“HT00 第三出口”
符合这个要求吗?“该组中既有“%出口入口”也有“%入口出口”,”

使用道具

地板
qzuxwj138 发表于 2009-11-13 16:00:21 |只看作者 |坛友微信交流群
按你的说法这样也可以啊!
proc sql;
create table b as
select * from a where MESHCODE='HT00' and (NAME like '%出口%' or NAME like '%入口%');
quit;
不知道是我不理解你题目还是。。。。

使用道具

7
xiaosanmao 发表于 2009-11-13 16:21:25 |只看作者 |坛友微信交流群
qzuxwj138 发表于 2009-11-13 16:00
按你的说法这样也可以啊!
proc sql;
create table b as
select * from a where MESHCODE='HT00' and (NAME like '%出口%' or NAME like '%入口%');
quit;
不知道是我不理解你题目还是。。。。
是你不理解,他意思是按照meshcode分类输出整组数据
meshcode分类下name只要含有一个入口出口和一个出口入口就可以了 name其它是什么无所谓 即便是下面的数据也是输出HT00整组。
HT00 第一出口入口
HT00 第一入口出口
HT00 铁板鱿鱼
HT00 宫保鸡丁
MT00 第四入口出口
NT00 第五出口入口

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-11 02:00