sql - 通过 SQL 进行股票交易系统计算

标签 sql database-design

需要根据数据库中的交易计算股票市场投资组合。我希望通过 SQL 进行的计算包括平均价格、返回率、投资组合值(value)等。

示例数据:

Stock   Shares  Price   Value
A       100     50      5000
A       -20     60     -1200
A        50     40      2000

我无法使用 SQL 来完成此操作,所以我想我可能需要编写输出脚本,因此非常感谢任何帮助。

最佳答案

请注意,当前价格是硬编码的 (38),因为它没有提供,需要在另一个表中提供,该表将连接到stocks表,但原理是相同的。

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%

关于sql - 通过 SQL 进行股票交易系统计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/211195/

相关文章:

mysql - 如何在没有任何连接的情况下优化大型 MySQL 表中的查询?

mysql - 比较密码和用户名的准确性 : utf8_general_ci or utf8_bin?

database - 在单个表或多个表中表示级别

mysql - MySql 查询的结果不准确

sql-server - SQL 2008 数据类型 - 使用哪些?

php - “跟随”或 'Subscribe' 方法

mysql - 发票和任务表的参照完整性

mysql - 错误代码: 1248. Every derived table must have its own alias 找不到查询的解决方案

sql - 如何在 PostgreSQL 中更新或插入

sql - sql中具有多列的数据透视表?