SQL 如何从本月至今的表中计算单日收益/损失

时间:2021-03-10 21:58:15

标签: sql finance

我有一个表格,其中包含每月迄今为止的总收益损失,其中包含各种投资组合、证券标识符和业务单位。每个月,期间开始日期都会刷新到新月的开始,但该表通常一次包含整个季度的数据。如何编写查询来计算按投资组合、代码和业务部门分组的所有“结束日期”的单日收益损失?

Portfolio   Fund Legal Entity   SECURITY IDENTIFIER BUSINESS UNIT   GAIN/LOSS   Start Date  End Date
Portfolio1  LegalEntity1    Ticker1 PUBLIC   (4,760,588.0)  1-Feb   27-Feb
Portfolio1  LegalEntity1    Ticker1 PUBLIC   9,123,144.0    1-Feb   28-Feb
Portfolio1  LegalEntity1    Ticker1 PUBLIC   7,470,013.0    1-Mar   1-Mar
Portfolio1  LegalEntity1    Ticker1 PUBLIC   24,466,723.0   1-Mar   2-Mar
Portfolio1  LegalEntity1    Ticker1 PUBLIC   4,272,096.0    1-Mar   3-Mar
Portfolio1  LegalEntity1    Ticker1 PUBLIC   14,043,454.0   1-Mar   4-Mar
Portfolio1  LegalEntity1    Ticker1 PUBLIC   17,631,760.0   1-Mar   5-Mar

1 个答案:

答案 0 :(得分:0)

如果您的 dbms 支持,您可以使用延迟:

SELECT Portfolio, Fund_Legal_Entity, SECURITY_IDENTIFIER,
       BUSINESS_UNIT, GAIN_LOSS, Start_Date, End_Date,
       (gain_loss-lag(GAIN_LOSS) OVER (PARTITION BY Portfolio,  
       Fund_Legal_Entity, SECURITY_IDENTIFIER, BUSINESS_UNIT 
       ORDER BY end_date)) Daily_gain_loss
FROM tablename
相关问题