作者abonnie34 (胖子)
看板Statistics
标题[程式] sas sql语法
时间Sun Sep 9 19:57:51 2012
------------------------------------------------------------------------
[软体程式类别]:
SAS
[程式问题]:
目前想利用sql count(*)计算数值出现次数,但我只会分成很多次语法写,
第一次跑可以,但第二次计算的时候就出现错误讯息,
不知各位有没有更好的方法,或我语法那边错误,谢谢。
[软体熟悉度]:
低(1~3个月)
[问题叙述]:
原本资料有id 与 case_type两变项,想计算case_type栏位数值出现次数,
新创栏位type1,type2,type3。
原本资料想要变为:
ID case_type ---> ID case_type type1 type2 type3
a 1 a 1 2 0 0
a 1 a 1 2 0 0
b 1 b 1 1 1 1
b 2 b 2 1 1 1
b 3 b 3 1 1 1
我的语法:
第一次计算type1的次数
proc sql;
create table A as
select id,case_type,
count(*)type1 from a
where case_type in(1)
group by id;quit;
第二次计算type2的次数
proc sql;
create table A as
select id,case_type,
count(*)type2 from A
where case_type in(2)
group by id;quit;
第一次算还会出现type1栏位,第二次就说明错误,不晓得我是哪边错了呢?
谢谢各位解答!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.80.147.129
1F:推 MmmRrrrX:跟SQL不算熟,不过group by 只放 id ,照理讲 select 里 09/09 23:53
2F:→ MmmRrrrX:不应该出现 case_type 09/09 23:53
3F:→ JeanYCY:第一次下了where,data A里就不再包含case_type=2的资料 09/10 10:28
4F:→ JeanYCY:应该说data A中只留下case_type=1的资料... 09/10 10:29
5F:→ MmmRrrrX:或者是create table A 将原始资料的 a 取代掉了 (?) 09/10 23:25