【发布时间】:2017-01-13 17:24:08
【问题描述】:
我正在尝试仅查找唯一 ID 号的频率。我尝试了 PROC FREQ,但无法弄清楚如何执行 SELECT DISTINCT 的 SAS 等效项。我运行了以下代码并得到了不相加的数字。
代码:
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n;
结果: 20599
代码:
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '1a (obs): Demonstrating knowledge of content and pedagogy';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '1a (p&p): Demonstrating knowledge of content and pedagogy';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '1e (obs): Designing coherent instruction';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '1e (p&p): Designing coherent instruction';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '2a: Creating an environment of respect and rapport';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '2d: Managing student behavior';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '3b: Using questioning and discussion techniques';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '3c: Engaging students in learning';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '3d: Using assessment in instruction';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '4e (obs): Growing and developing professionally';
PROC SQL;
SELECT COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n
WHERE MOTPComponentDescription = '4e (p&p): Growing and developing professionally';
在此处查看数据集的 sn-p:https://docs.google.com/spreadsheets/d/1WDcsezb4xiT67J9t3Nlyi_QEofs0dhyZ23yC32ccbqg/edit?usp=sharing
结果: 1a(obs):展示内容和教学法知识:700
1a (p&p):展示内容和教学法知识:606
1e (obs):设计连贯指令:15622
1e (p&p):设计连贯指令:1135
2a:创造尊重和融洽的环境:2466
2d:管理学生行为:1005
3b:使用提问和讨论技巧:808
3c:让学生参与学习:2516
3d:在教学中使用评估:3058
4e (obs):专业成长和发展:5245
4e (p&p):专业成长和发展:588
总和 = 33746
33746 != 20599
寻找关于哪里出了问题的任何想法,或者是否有更好的方法来获得我想要的结果(MOTPCopmponentDescription 的唯一 MOTPID 的计数。提前非常感谢!
【问题讨论】:
-
你期待什么?在这种情况下,“加起来”对您意味着什么?
-
帖子中声明的结果:MOTPComponentDescription 的唯一 MOTPID 计数。对此进行扩展:有一个标有 MOTPID 的列带有 ID 号,还有一个标有 MOTPComponentDescription 的列带有另一个标识符。每个 MOTPID 最多可以有 8 行(每个 MOTPComponentDescription 1 个)。我想获得每个 MOTPComponentDescription 的唯一 MOTPID 数量。示例:“4e (p&p):Growing and developmently professional”可能有 950 行,但只有 508 个唯一的 MOTPID。我希望结果是 508,而不是 950。
-
"加起来" = 使所有单个 MOTPComponentDescription 计数的总和与所有唯一 MOTPID 的计数相加。目前所有组件计数的总和为 22746,数据集的所有唯一 MOTPID 的计数为 20599。这些(显然)不相等,我无法弄清楚问题出在哪里 - 为什么这是我的结果我正在接收。
-
SQL 可以写成聚合:
PROC SQL; SELECT MOTPComponentDescription, COUNT (DISTINCT MOTPID) FROM WORK.'0__1_MOTP_COMMENTS_0000'n GROUP BY MOTPComponentDescription
标签: sql sas proc enterprise-guide