全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1983 4
2015-06-26
6. The table WORK.PILOTS contains the following data:
   WORK.PILOTS
   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

The data set was summarized to include average
salary based on jobcode:      

  Jobcode  Salary     Avg      
  -------  ------   -----      
  PT1       50000   60000      
  PT1       70000   60000      
  PT1       60000   60000      
  PT2       80000   85000      
  PT2       90000   85000      
  PT3      100000  100000      

Which SQL statement could NOT generate this result?

A. select
  Jobcode,  
  Salary,   
  avg(Salary) label='Avg'
from WORK.PILOTS
group by Jobcode
order by Id  
;      

B. select
  Jobcode,  
  Salary,   
  (select avg(Salary)  
  from WORK.PILOTS as P1      
  where P1.Jobcode=P2.Jobcode) as Avg  
from WORK.PILOTS as P2  
order by Id  
;      

C. select
  Jobcode,  
  Salary,   
  (select avg(Salary)  
  from WORK.PILOTS   
  group by Jobcode) as Avg   
from WORK.PILOTS
order by Id  
;      

D. select
  Jobcode,  
  Salary,   
  Avg
from  
  WORK.PILOTS,
(select   
     Jobcode as Jc,   
     avg(Salary) as Avg
  from WORK.PILOTS   
  group by 1)
where Jobcode=Jc
order by Id  
;      

B选项不太懂,这样返回的不是应该是所有的均值吗?因为没有group。
另外C选项不是返回一个column么,为何就出错了?

真心求助,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-27 03:20:21
把每个选项都在SAS运行后,发现只有C是 error.
为啥同样是subquery,也是group by,选了两个columns的D就没问题?
二维码

扫码加我 拉你入群

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

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

2015-6-27 08:02:12
henrykira 发表于 2015-6-27 03:20
把每个选项都在SAS运行后,发现只有C是 error.
为啥同样是subquery,也是group by,选了两个columns的D就没 ...
牛人,
二维码

扫码加我 拉你入群

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

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

2015-6-27 08:37:08
henrykira 发表于 2015-6-27 03:20
把每个选项都在SAS运行后,发现只有C是 error.
为啥同样是subquery,也是group by,选了两个columns的D就没 ...
having语句或where语句的sub query只能返回一个column

而D中那个是在from语句里  是一种特别的sub query叫in line view 返回多少个column都可以
因为是把他当做一个table了
二维码

扫码加我 拉你入群

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

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

2015-6-27 21:47:49
sas那个石家庄人 发表于 2015-6-27 08:37
having语句或where语句的sub query只能返回一个column

而D中那个是在from语句里  是一种特别的sub que ...
原来如此啊,谢谢你
overstack上好像有类似的sql的问题,from后面和select后面的view要求是不一样的原来。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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