楼主: addictedtome
3087 4

[原创博文] 求助关于sql的计数 [推广有奖]

  • 0关注
  • 4粉丝

已卖:22份资源

副教授

43%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
10.6659
学术水平
21 点
热心指数
30 点
信用等级
14 点
经验
22165 点
帖子
638
精华
0
在线时间
1000 小时
注册时间
2008-8-31
最后登录
2025-7-6

楼主
addictedtome 发表于 2010-5-21 10:45:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据太概是这样的:

年级     专业        班级          女生多/男生多 (女生多为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里好像不是这样用,请教各位仁兄!

谢谢嘞!
二维码

扫码加我 拉你入群

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

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

关键词:关于SQL sql proc sql dataset Number 统计 专业

回帖推荐

醉_清风 发表于2楼  查看完整内容

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 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;

试试看 对不对
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

从来不需要想起 永远也不会忘记

藤椅
addictedtome 发表于 2010-5-21 11:01:00
2# 醉_清风




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

板凳
醉_清风 发表于 2010-5-21 11:02:42
嗯 这个用法比较实用
从来不需要想起 永远也不会忘记

报纸
wkn1986 发表于 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;
不知这个能用不

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

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