楼主: sduruc
2891 9

【SAS advance SQL】 63题程序探讨 [推广有奖]

  • 7关注
  • 23粉丝

学科带头人

71%

还不是VIP/贵宾

-

威望
0
论坛币
8283 个
通用积分
5.3297
学术水平
29 点
热心指数
40 点
信用等级
31 点
经验
98266 点
帖子
593
精华
0
在线时间
4066 小时
注册时间
2011-9-24
最后登录
2023-2-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
63题的第50个,题目如下:

The table WORK.PILOTS contains the following data:


   Id   Name     Jobcode  Salary

   ---  ------   -------  ------

   001  Albert   PT1       50000

   002  Brenda   PT1       70000

   003  Carl     PT1       60000

   004  Donna    PT2       80000

   005  Edward   PT2       90000

   006  Flora    PT3      100000


A query was constructed to display the pilot salary      

means at each level of Jobcode and the difference to     

the overall mean salary:      


Jobcode    Average  Difference

------------------------------

PT1          60000      -15000

PT2          85000       10000

PT3         100000       25000


Which select statement could NOT have   

produced this output?  



        A.

select

   Jobcode,   

   avg(Salary) as Average,      

   calculated Average - Overall as difference  

from   

   WORK.PILOTS,

   (select avg(Salary) as Overall from WORK.PILOTS)

group by jobcode

;      


     B.

select

   Jobcode,   

   avg(Salary) as Average,      

   (select avg(Salary) from WORK.PILOTS) as Overall,      

   calculated Average - Overall as Difference  

from WORK.PILOTS

group by 1   

;      


     C.

select

   Jobcode,   

   Average,   

   Average-Overall as Difference

from   

   (select Jobcode, avg(Salary) as Average     

   from WORK.PILOTS     

   group by 1),

   (select avg(Salary) as Overall

   from WORK.PILOTS)   

;      


     D.

select

   Jobcode,   

   avg(Salary) as Average,      

   calculated Average-(select avg(Salary) from WORK.PILOTS)      

      as Difference     

from WORK.PILOTS

group by 1   

;      

答案选B,有的解析是是B在Overall前加上没有加calculated,加上便能够实现desired output。所以请问各位高手,本题目怎么破?A中使用的Overall前面也没有专门加上calculated啊,但是B就得加上才能运行~欢迎讨论


二维码

扫码加我 拉你入群

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

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

关键词:ADVANCE VANCE advan ance sql 程序

沙发
sduruc 发表于 2014-12-13 10:07:04 |只看作者 |坛友微信交流群
而且有的答案说A中的Overall要先定义后使用,个人觉得SAS不存在这样的问题~

使用道具

藤椅
mingfeng07 学生认证  发表于 2014-12-13 10:09:29 |只看作者 |坛友微信交流群
题目的意思是哪个选项不能产生那个结果,B不能,所以选B啊 ,B中overall是一个新变量,所以引用时需要加calculated
已有 1 人评分学术水平 热心指数 收起 理由
condor_gz + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

板凳
sduruc 发表于 2014-12-13 10:22:54 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-12-13 10:09
题目的意思是哪个选项不能产生那个结果,B不能,所以选B啊 ,B中overall是一个新变量,所以引用时需要加cal ...
谢谢!不过您看A中引用了Overall前面就没有专门再加上calculated啊

使用道具

报纸
mingfeng07 学生认证  发表于 2014-12-13 22:41:50 |只看作者 |坛友微信交流群
sduruc 发表于 2014-12-13 10:22
谢谢!不过您看A中引用了Overall前面就没有专门再加上calculated啊
A中overall是从from数据集里选的,相当于原始变量

使用道具

地板
sduruc 发表于 2014-12-14 12:00:04 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-12-13 22:41
A中overall是从from数据集里选的,相当于原始变量
不大敢苟同,您看(select avg(Salary) as Overall,其实Overall也是通过均值函数生成的,跟Average变量没有本质区别,没有calculated个人认为可能跟(select avg(Salary) as Overall的括号有关~

使用道具

7
mingfeng07 学生认证  发表于 2014-12-14 20:00:51 |只看作者 |坛友微信交流群
sduruc 发表于 2014-12-14 12:00
不大敢苟同,您看(select avg(Salary) as Overall,其实Overall也是通过均值函数生成的,跟Average变量没 ...
from后面的所有变量,不管是否是通过计算生成的变量,还是原来数据中都有变量,都视为原始变量,可以直接引用;而from之前的变量,如果是计算生成的,则需要加calculated。
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Amandanannn + 1 + 1 精彩帖子
condor_gz + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

使用道具

8
condor_gz 在职认证  发表于 2015-2-28 17:51:24 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-12-14 20:00
from后面的所有变量,不管是否是通过计算生成的变量,还是原来数据中都有变量,都视为原始变量,可以直接 ...
正解~~~

使用道具

9
hwyale 发表于 2015-6-7 10:03:51 |只看作者 |坛友微信交流群
condor_gz 发表于 2015-2-28 17:51
正解~~~
那么为什么d 对呢

使用道具

10
hwyale 发表于 2015-6-7 10:04:47 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-12-14 20:00
from后面的所有变量,不管是否是通过计算生成的变量,还是原来数据中都有变量,都视为原始变量,可以直接 ...
为什么d对呢

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 21:37