3466 12

怎样用sql把一个数据集纵向截成三段然后横向连接,自己编了一个,有error [推广有奖]

  • 5关注
  • 0粉丝

本科生

83%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
991 点
帖子
87
精华
0
在线时间
67 小时
注册时间
2015-4-21
最后登录
2016-4-12

楼主
小琪是豆豆猪 发表于 2015-9-22 00:01:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
这个数据集
4.png
要按照group截成三段,然后横向连接,成这样,用sql'做
5.png
这个数据集是我用别的方法做的
  1. data means_2 (drop=Group);
  2. merge means_1 (where=(group="A") rename=(age=GroupA))
  3. means_1 (where=(group="B") rename=(age=GroupB))
  4. means_1 (where=(group="C") rename=(age=Total)) ;
  5. run ;
复制代码
自己编了一个sql的版本,第一个数据集是means—1
  1. proc sql ;
  2. create table work.means_2 as
  3. select means_1.*
  4. from work.means_1 (where=(group="A"))
  5. full join work.means_1 (where=(group="B"))
  6. on means_1._STAT_=means_1._STAT_ ;
  7. quit ;
复制代码
有error
6.png
请教各位大神
这是哪里出现问题了
该怎么改正,
感激不尽

二维码

扫码加我 拉你入群

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

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

关键词:Error 数据集 sql err proc sql error

沙发
teqel 发表于 2015-9-22 00:21:50
you should give two different aliases to the same table

藤椅
yukan821 发表于 2015-9-22 00:30:55
01.gif

板凳
teqel 发表于 2015-9-22 01:05:30
from work.means_1 (where=(group="A")) as A
full join work.means_1 (where=(group="B")) as B
on A._STAT_=B._STAT_ ;

报纸
godxh 在职认证  发表于 2015-9-22 14:29:52
为什么一定要用SQL呢,既然有更简单的方法。

地板
120788893 发表于 2015-9-22 15:42:29
do循环按ABC截取3个数据集,然后merge不好么

7
小琪是豆豆猪 发表于 2015-9-22 20:25:17
teqel 发表于 2015-9-22 01:05
from work.means_1 (where=(group="A")) as A
full join work.means_1 (where=(group="B")) as B
on A._S ...
81   proc sql ;
81 !                                                       *xxxxxxxxxxxxxxxxxxxxxxxx;
82        create table work.means_2  as
83           select  means_1.*
84           from work.means_1 (where=(group="A")) as A
85           full join work.means_1 (where=(group="B")) as B
86           on A._STAT_=B._STAT_  ;
WARNING: Correlation name means_1 identifies more than one table.
WARNING: Variable Group already exists on file WORK.MEANS_2.
WARNING: Variable _STAT_ already exists on file WORK.MEANS_2.
WARNING: Variable Age already exists on file WORK.MEANS_2.
NOTE: Table WORK.MEANS_2 created, with 5 rows and 3 columns.

有错误啊  数据集只出来了B列

8
小琪是豆豆猪 发表于 2015-9-22 20:27:52
godxh 发表于 2015-9-22 14:29
为什么一定要用SQL呢,既然有更简单的方法。
81   proc sql ;
81 !                                                       *xxxxxxxxxxxxxxxxxxxxxxxx;
82        create table work.means_2  as
83           select  means_1.*
84           from work.means_1 (where=(group="A")) as A
85           full join work.means_1 (where=(group="B")) as B
86           on A._STAT_=B._STAT_  ;
WARNING: Correlation name means_1 identifies more than one table.
WARNING: Variable Group already exists on file WORK.MEANS_2.
WARNING: Variable _STAT_ already exists on file WORK.MEANS_2.
WARNING: Variable Age already exists on file WORK.MEANS_2.
NOTE: Table WORK.MEANS_2 created, with 5 rows and 3 columns.

数据集只出来了GroupB的,

9
小琪是豆豆猪 发表于 2015-9-22 20:28:59
teqel 发表于 2015-9-22 01:05
from work.means_1 (where=(group="A")) as A
full join work.means_1 (where=(group="B")) as B
on A._S ...
81   proc sql ;
81 !                                                       *xxxxxxxxxxxxxxxxxxxxxxxx;
82        create table work.means_2  as
83           select  means_1.*
84           from work.means_1 (where=(group="A")) as A
85           full join work.means_1 (where=(group="B")) as B
86           on A._STAT_=B._STAT_  ;
WARNING: Correlation name means_1 identifies more than one table.
WARNING: Variable Group already exists on file WORK.MEANS_2.
WARNING: Variable _STAT_ already exists on file WORK.MEANS_2.
WARNING: Variable Age already exists on file WORK.MEANS_2.
NOTE: Table WORK.MEANS_2 created, with 5 rows and 3 columns.

数据集只出来了GroupB的,

10
小琪是豆豆猪 发表于 2015-9-22 20:30:17
godxh 发表于 2015-9-22 14:29
为什么一定要用SQL呢,既然有更简单的方法。
想尝试一下别的方法

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 05:17