SAS中文论坛

标题: 帮忙解决一下在select子句中使用嵌套查询 [打印本页]

作者: shiyiming    时间: 2010-11-21 15:50
标题: 帮忙解决一下在select子句中使用嵌套查询
看到一下的题目,我就不会了!

a 数据集如下:

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


不懂一下程序是怎么进行的!感觉书上也没有讲清楚。具体过程不懂。
proc sql;
  select Jobcode, Salary, (select avg(Salary)
                                            from a as P1
                                                     where P1.Jobcode=P2.Jobcode) as Avg
     from a as P2
        order by Id;
quit;

结果是:

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


我不知道怎么会这样!

请大侠们帮忙看一下哈,谢谢!
作者: shiyiming    时间: 2011-7-26 17:51
标题: Re: 帮忙解决一下在select子句中使用嵌套查询
=
select Jobcode, Salary, avg
from a as P2
inner join (select jobcode,avg(Salary) as Avg from a) as P1 on P1.Jobcode=P2.Jobcode;

包含了一个连接~~




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2