是否可以像使用SQL一样显示下面的员工详细信息?如何显示员工详细信息以及所有员工的总金额(sal)?
Emp_id, Emp_name, Emp_Sal, Sum(Emp_Sal)
注:这里Sum(Emp_Sal)
是全体员工的总和。
是否可以像使用SQL一样显示下面的员工详细信息?如何显示员工详细信息以及所有员工的总金额(sal)?
Emp_id, Emp_name, Emp_Sal, Sum(Emp_Sal)
注:这里Sum(Emp_Sal)
是全体员工的总和。
Arulkumar提供正确的解决方案,使用标量子查询。
以下解决方案使用分析功能。注意窗口子句:它是空的,因为我们想要一个组(所有员工),所以没有“partition by”,并且我们想要添加所有行,所以没有“order by”(默认情况下意味着所有行都排列为“相等”,我们得到所有行的总和)。
优点是你只需要经过一次基表。在“标量子查询”方法中,该表被读取两次。在这个简单的例子中,这可能并不重要,但它在生产中可能很重要,并且具有非常大的表格。
select empno, msal, sum(msal) over() as total_sal from employees;
EMPNO MSAL TOTAL_SAL
---------- ---------- ----------
7369 800 28875
7499 1600 28875
7521 1250 28875
7566 2975 28875
7654 1250 28875
7698 2850 28875
7782 2450 28875
7788 3000 28875
7839 5000 28875
7844 1500 28875
7876 1100 28875
7900 800 28875
7902 3000 28875
7934 1300 28875
你可以用这种方式您预期的结果:
SELECT Emp_id, Emp_name, Emp_Sal, (SELECT SUM(Emp_Sal) FROM Employee) AS TotalSalary
FROM Employee;
或
在一个简单的方法储存的工资总和到一个变量,并连同使用SELECT *,
SELECT SUM(Emp_Sal) INTO @TotalSalary FROM Employee;
SELECT *, @TotalSalary AS TotalSalary
FROM Employee;
Sum(Emp_Sal)是否适用于所有员工? 'Emp_Sal'与个人员工的'Sum(Emp_Sal)'有什么不同? – Arulkumar
是的..我想显示所有员工的总和...... –
您可以给出您想要的输出的一个例子。 – XING