需要根据数据库中的交易计算股票市场投资组合。我希望通过SQL做的计算是平均价格,收益率,投资组合价值等。
示例数据:
Stock Shares Price Value A 100 50 5000 A -20 60 -1200 A 50 40 2000
我无法用SQL做到这一点,所以我猜我可能需要编写输出脚本,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
请注意,当前价格是硬编码的(38),因为它没有提供,它需要在另一个表中提供,该表将加入到股票表中,但原理是相同的。
create table stocks (stock varchar2(10),shares number, price number);
insert into stocks values('A', 100, 50);
insert into stocks values('A', -20, 60);
insert into stocks values('A', 50, 40);
select stock, sum(shares) number_of_shares, round(sum(shares*price)/sum(shares),2) average_price,
sum(shares*price) amount_paid, sum(shares*38) value,
round((sum(shares*38)-sum(shares*price))/sum(shares*price)*100,2)||'%' rate_of_return
from stocks
group by stock
STOCK NUMBER_OF_SHARES AVERAGE_PRICE AMOUNT_PAID VALUE RETURN
A 130 44.62 5800 4940 -14.83%