2013-07-17 10 views
5

Diciamo che ho tavolo con che sembra qualcosa di simile:
SQL valore assoluto somma e iterare

cns_amt ---- cusip_nbr

-3000 ------------ -------- 00162Q205
4000 -------------------- 00162Q205
6000 -------------- ------ 00162Q205
8000 -------------------- 00162Q205
10000 ---------------- ---- 33733B100
-2900 -------------------- 33733B100
1000 -------------------- 33733B100
8000 -------------------- 33733B100
7000 -------------------- 464286178
-1200 -------------------- 464286178
1000- ------------------- 464286178
1000 -------------------- 464286178

Come posso fare in modo ottengo i risultati:

total_amt ---- cusip_nbr

21000 --------- --------------- 00162Q205
21900 ----------------------- 33733B100
10200 ---- -------------------- 4642861

Fondamentalmente vorrei sommare ciascuno il valore assoluto per ogni cusip_nbr distinto e restituire un risultato che rappresenta ogni cusip_nbr e il suo rispettiva somma del valore assoluto. (Solo tre s distinti cusip_nbr' sono mostrati qui, ma ho centinaia di loro, ognuna con un cns_amt che deve essere riassunta)

risposta

11

È possibile utilizzare ABS() per ottenere il valore assoluto, e SUM():

SELECT cusip_nbr, SUM(ABS(cns_amt)) 'total_amt' 
FROM Table 
GROUP BY cusip_nbr 

Demo: SQL Fiddle

0
select cusip_nbr, sum(abs(cns_amt)) total_amt from table_name group by cusip_nbr