2015-07-24 3 views
0

Сай, у меня есть 3 колонки в моей таблице:Совокупная сумма по определенному значению идентификатора в SQL Server

--------------- 
name     | ID | Amt 
ABC     | 1 | 500 
ABC     | 1 | 650 
XYZ     | 2 | 700 
XYZ     | 2 | 550 
DEF     | 3 | 200 

как я могу получить выход, где сумма агрегируются для каждого идентификатора, т.е. ABC дает 1150, XYZ 1250 и DEF 200?

ответ

1

Вы хотите группу по, с тем, что походит на сумму от вашего примера:

Select Name, ID, sum(amt) as TotalAmt 
from MyTable 
Group by Name, ID 
0
SELECT name,SUM(Amt) FROM [table] GROUP BY name 

или, если вы хотите, чтобы отобразить имя и ID

SELECT name,ID,SUM(Amt) OVER (PARTITION BY name) FROM [table] 
0

Это может быть сделано с использованием простого заявления group by:

select name, 
     id, 
     sum(amt) as agg_sum 
from total 
group by name,id; 

SQL Fiddle Demo

Смежные вопросы