全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3023 4
2010-05-21
数据太概是这样的:

年级     专业        班级          女生多/男生多 (女生多为1,男生多为2)
1           q              1                       1
1           x              2                       1
1           y              3                        2
1           z              4                         1
2           y              1                        2
2           z              2                         1
3           p              1                            1
3           q              2                           2
4           z              1                           1
5            x             1                           1
5            y             2                          2

现在要统计每一个年级的每一专业有几个班级男生多,几个班级女生多,每一个年级的每一个专业总共有几个班。


我用sql写了一个程序,总报错

proc sql;
create table x as select grade, major, count(number, 1) as totalfemal, count(number, 2) as totalmale from dataset group by grade, major;
quit;
proc print data=x;
run;

但是count在sql里好像不是这样用,请教各位仁兄!

谢谢嘞!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-5-21 10:53:51
proc sql;
        create table x as
        select   grade
                    ,major
                    ,sum(case when number=1 then 1 else 0 end) as totalfemal
                    ,sum(case when number=2 then 1 else 0 end) as totalmale
        from dataset
        group by  grade, major;
quit;

试试看 对不对
二维码

扫码加我 拉你入群

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

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

2010-5-21 11:01:00
2# 醉_清风




这个case用的很巧妙,结果是对的,谢谢嘞!
二维码

扫码加我 拉你入群

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

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

2010-5-21 11:02:42
嗯 这个用法比较实用
二维码

扫码加我 拉你入群

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

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

2010-5-21 19:00:50
data shuju;
input nianji  $ zhuanye  $  banji $  ha $;
cards;
1           q              1                       1
1           x              2                       1
1           y              3                        2
1           z              4                         1
2           y              1                        2
2           z              2                         1
3           p              1                            1
3           q              2                           2
4           z              1                           1
5            x             1                           1
5            y             2                          2
;
run;
proc sql;
select nianji,zhuanye,
       sum(ha="1") as nvduo ,
       sum(ha="2") as nanduo,
           count(*) as banjishu  
from shuju
group by nianji ,zhuanye;
quit;
不知这个能用不
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群