对所有数据使用内联视图时遇到问题
Having problems using inline view for all data
我在使用内联视图创建计算 salary/total_sal * 100 的列时遇到了一些问题。我的问题是,出于某种原因,我没有获得所有员工的价值,但仅限于第一个.
select emp.ename, emp.sal,
( select (emp.sal / sum(emp.sal) * 100))
from emp;
我试图环顾四周,看看是否能找到答案,但我找不到。任何帮助都会非常有帮助!
好吧,问题中的查询应该会给您一个语法错误,因为子查询没有 from 子句。只需要在子查询中获取和,而不是整个百分比计算:
select emp.ename,
emp.sal,
emp.sal / (select sum(emp2.sal) from emp as emp2) * 100
from emp;
另一种方法是将子查询移动到 from 子句中(派生 table)并进行交叉连接:
select emp.ename,
emp.sal,
emp.sal / t.tot_sal * 100
from emp
join (select sum(emp2.sal) as tot_sal from emp as emp2) as t;
我在使用内联视图创建计算 salary/total_sal * 100 的列时遇到了一些问题。我的问题是,出于某种原因,我没有获得所有员工的价值,但仅限于第一个.
select emp.ename, emp.sal,
( select (emp.sal / sum(emp.sal) * 100))
from emp;
我试图环顾四周,看看是否能找到答案,但我找不到。任何帮助都会非常有帮助!
好吧,问题中的查询应该会给您一个语法错误,因为子查询没有 from 子句。只需要在子查询中获取和,而不是整个百分比计算:
select emp.ename,
emp.sal,
emp.sal / (select sum(emp2.sal) from emp as emp2) * 100
from emp;
另一种方法是将子查询移动到 from 子句中(派生 table)并进行交叉连接:
select emp.ename,
emp.sal,
emp.sal / t.tot_sal * 100
from emp
join (select sum(emp2.sal) as tot_sal from emp as emp2) as t;