Похоже, что это вопрос MySQL, но запрос использует довольно стандартный SQL и должен работать для других СУБД.
SQL Fiddle
Настройка схемы MySQL 5.6 :
DROP TABLE IF EXISTS trades;
CREATE TABLE trades(
id integer,
type text,
price double ,
cpty text,
notional double);
INSERT INTO trades VALUES (1,'BUY',96.28,"CPTY1",20000);
INSERT INTO trades VALUES (1,'BUY',97.28,"CPTY2",20000);
INSERT INTO trades VALUES (1,'SELL',99.28,"CPTY1",100000);
INSERT INTO trades VALUES (1,'SELL',98.28,"CPTY3",400000);
INSERT INTO trades VALUES (1,'SELL',95.28,"CPTY3",600000);
Запрос 1 :
SELECT cpty
, SUM(
CASE
WHEN type = 'BUY' THEN notional
WHEN type = 'SELL' THEN - notional
ELSE 0
END
) AS notionalTotal
FROM trades
GROUP BY cpty
Результаты
| cpty | notionalTotal |
|-------|---------------|
| CPTY1 | -80000 |
| CPTY2 | 20000 |
| CPTY3 | -1000000 |
РЕДАКТИРОВАТЬ: у меня изначально был подзапрос, а затем суммировал по этому, но в этом случае, это не нужно. Я упростил.