Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL分析函数选择工资低于部门平均工资的员工?_Sql_Oracle Sqldeveloper - Fatal编程技术网

如何使用SQL分析函数选择工资低于部门平均工资的员工?

如何使用SQL分析函数选择工资低于部门平均工资的员工?,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我试图用SQL分析函数对那些工资低于所在部门平均工资的员工做一个精选陈述。 上面的代码显示了所有员工及其所在部门的平均值。我如何限制它,使其只选择工资

我试图用SQL分析函数对那些工资低于所在部门平均工资的员工做一个精选陈述。 上面的代码显示了所有员工及其所在部门的平均值。我如何限制它,使其只选择工资<部门平均工资的员工


从员工中选择姓名、工资、ID_DEP、平均值(按ID_DEP DEP_平均值划分)

使用窗口函数和子查询:

select e.*
from (select e.*, 
             avg(salary) over (partition by id_dep) as avg_salary
      from employees e
     ) e
where salary < avg_salary;

不能在where或having子句中使用窗口函数。一些数据库支持对窗口函数进行筛选的限定子句;但是Oracle没有。

使用窗口函数和子查询:

select e.*
from (select e.*, 
             avg(salary) over (partition by id_dep) as avg_salary
      from employees e
     ) e
where salary < avg_salary;
不能在where或having子句中使用窗口函数。一些数据库支持对窗口函数进行筛选的限定子句;但甲骨文没有