在1个表中查询2个和

时间:2015-08-18 12:31:30

标签: sql sql-server

表a

column id    : a a b b
column total : 1 2 1 3

我怎么能表现出来?在一个表中没有使用计算

a 3 7
b 4 7

3 个答案:

答案 0 :(得分:3)

group by总结每个ID的总和。进行子选择以计算总数:

select id,
       sum(total) as total,
       (select sum(total) from a) as totalall
from a
group by id

答案 1 :(得分:2)

使用具有不同的窗口函数,可以简单地表示如下:

select distinct id,
       sum(Total) over(partition by id) total,
       Sum(Total) over () total_all
  from mytable

SQL Fiddle

答案 2 :(得分:0)

一种方法是使用OUTER APPLY。您还可以将变量设置为表的总和并调用该变量。

select a.id, sum(a.total) as total, b.Grand as GrandTotal
from tablea a
outer apply
(select sum(total) as Grand from tablea) b
group by a.id