如何编写单个SQL查询以获取SQL Server 2008中其他列的聚合列?
答
我去年所面临的确切的问题。希望这个帮助。
SELECT e1.EmpId,
e1.EmpName
e1.EmpSalary,
SUM(e2.EmpSalary) AS Aggregate_Salary
FROM Employee e1 JOIN Employee e2
ON e1.id >= e2.id GROUP BY e1.EmpId,
e1.EmpName,
e1.EmpSalary
答
使用相关子查询:
select EmpId, EmpName, EmpSalary, (select sum(EmpSalary) from Employee e2
where e2.EmpId <= e1.EmpId) as AggregateSalary
from Employee e1
答
你没有指定你的DBMS,所以这是ANSI SQL:
select empid,
empname,
empsalary,
sum(empsalary) over (order by empid) as aggregate_salary
from employee
order by empid;
那你试试这么远吗? –
我试过但没有得到如何着手。 – Gupteshwari
您正在使用哪种dbms产品? – jarlh