2013-07-17 4 views
5

Допустим, у меня есть таблица, которая выглядит примерно так:
SQL сумма абсолютных значений и перебирать

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

я могу сделать это так, я получаю результаты:

total_amt ---- cusip_nbr

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

В принципе, я хотел бы суммировать каждое абсолютное значение для каждого отдельного cusip_nbr и возвращать результат, который отображает каждый cusip_nbr и его соответствующая сумма абсолютного значения. (Только три различных cusip_nbr «s показаны здесь, но у меня есть сотни из них, каждый с cns_amt, который должен быть суммированы)

ответ

11

Вы можете использовать ABS(), чтобы получить абсолютное значение, и SUM():

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

Демонстрация: SQL Fiddle

0
select cusip_nbr, sum(abs(cns_amt)) total_amt from table_name group by cusip_nbr 
Смежные вопросы