名为雇员的表如下:
id salary
10 100
10 100
10 100
要获取以下输出,sql server 2012中的查询应该是什么
id salary
10 300
10 300
10 300
那是薪金总额
答案 0 :(得分:3)
基于示例数据,您可以使用窗口功能:
select e.*, sum(sal) over ()
from emp e;
但是,如果您希望每个Id
的总薪水,则包含partition
子句:
select e.*, sum(sal) over (partition by id) as tot_salary
from emp e;
答案 1 :(得分:3)
您可能想要:
select e.*, sum(e.sal) over (partition by e.id) as total_salary
from employee e;
也就是说,我猜你想要每个id
的总和。
答案 2 :(得分:2)
正确的方法是使用SUM
的{{1}}窗口函数
ID
使用关联选择的另一种方法
select t.id, sum(salary) over (PARTITION BY ID) salary
from T t
答案 3 :(得分:0)
ANSI SQL
SELECT emp.id, emp2.salary
FROM emp INNER JOIN
(SELECT id, SUM(salary) AS salary GROUP BY id) AS emp2
ON emp.id = emp2.id