我在上一节SQL编程的课,用的是ORACLE 11G的系统,题目是列出所有高出平均工资的员工?要求是用一个SELECT语句,如果是可以用两个SELECT,我就会编了大致如下:select last_name, salary
from employees
where salary >
              (select avg(salary)
               from employees);请问如果只允许用一个SELECT语句,如果调出平均工资呢?
               

解决方案 »

  1.   


    select a.last_name, a.salary
    from employees a,(select avg(salary) avg_sal
      from employees) b
    where a.salary > b.avg_sal;
      

  2.   

    如果要用一个select关键字,办不到
      

  3.   

    两个select关键字的select语句也是一个select语句啊,楼主想干什么呢?
      

  4.   

    出题的意图应该是要你使用group by + having字句,你可以上网搜索一下having字句的写法就明了了。
      

  5.   

    只说让用一个select语句。group by可以,但是group 什么呢?是全部人的平均工资,不是部门的平均工资,怎么group全部啊?非常搞,没办法。实在不会写!
      

  6.   

    谁说的一个select语句 select只能出现一次啊?
      

  7.   

    一个select语句里面是可以有多个select关键字的啊,楼主,是不是出题的都没搞清楚这个问题哦。你那个就是对的。
      

  8.   

    多谢大家帮忙。问过老师,说只能用一个SELECT,就是说SELECT只能出现一次。作业里有个例子,如下:
    列出比DAVIES早进公司的人。
    SELECT e.last_name, e.hire_date 
    FROM employees e
    JOIN employees d
    ON e.hire_date > d.hire_date
    AND d.last_name = 'Davies';用到了JOIN,但是我按照这样改为select e.last_name, e.salary
    from employees e
    join employees d
    on e.salary>avg(d.salary);结果出错。不知怎么写。