根据另一列中的值计算和聚合列(SQL)
我有一张由股票交易组成的表格。我需要计算每个交易者的利润(这里有一个例子,交易者“Ben”) 诀窍在于多头仓位是正数,而空头仓位是负数,因此根据交易情况,计算利润时需要稍加修改 逻辑如下: 多头仓位的利润为50(买入价为100,卖出价为150) 空头头寸利润为-45(以105的价格卖出,以150的价格买入) 利润总额=5 电子表格方式:根据另一列中的值计算和聚合列(SQL),sql,postgresql,Sql,Postgresql,我有一张由股票交易组成的表格。我需要计算每个交易者的利润(这里有一个例子,交易者“Ben”) 诀窍在于多头仓位是正数,而空头仓位是负数,因此根据交易情况,计算利润时需要稍加修改 逻辑如下: 多头仓位的利润为50(买入价为100,卖出价为150) 空头头寸利润为-45(以105的价格卖出,以150的价格买入) 利润总额=5 电子表格方式: -1*(quantity*tradeprice) + marketprice = 50 / Long position profit -1*(quantity
-1*(quantity*tradeprice) + marketprice = 50 / Long position profit
-1*(quantity*tradeprice) - marketprice = -45 / Short position profit
我需要为每个交易者添加一个额外的列利润
非常感谢,这只是条件聚合。在您描述问题时:
select trader,
sum(case when position = 'long' then (market_price - trade_price) * quantity
when position = 'short' then (market_price - trade_price) * (- quantity)
end)
from t
group by trader;
但是,您的样本数据表明:
select trader, sum( (market_price - trade_price) * quantity)
from t
group by trader;
数量在你们的两排上有正确的标志吗?
select trader, sum( (market_price - trade_price) * quantity)
from t
group by trader;