【问题标题】:SQLite -- sum over small sections of column based on index in other columnSQLite - 基于其他列中的索引对列的小部分求和
【发布时间】:2010-10-29 20:07:40
【问题描述】:

我想对两列的乘积求和,但我想在小部分中进行。也就是说,对于每个 symbol 对于每个 date,我想将 oi 和“contract_settle”的乘积相加。这是我的 SQLite 数据库的 sn-p:

date    symbol  cont    oi  contract_settle
20030103    NVLS1C      100 NA
20030103    NVLS1C  03F 19  3125
20030103    NVLS1C  03G 8   3128
20030103    NVLS1C  03H 14  3130
20030103    NVLS1C  03M 59  3140
20030103    BGEN1C      90  NA
20030103    BGEN1C  03F 20  4149
20030103    BGEN1C  03G 30  4154
20030103    BGEN1C  03H 20  4158
20030103    BGEN1C  03M 20  4174

所以,我想要这样的结果:

date    symbol  cont    oi  contract_settle oi_dollar
20030103    NVLS1C      100 NA          313479
20030103    NVLS1C  03F 19  3125    
20030103    NVLS1C  03G 8   3128    
20030103    NVLS1C  03H 14  3130    
20030103    NVLS1C  03M 59  3140    
20030103    BGEN1C      90  NA          374240 
20030103    BGEN1C  03F 20  4149    
20030103    BGEN1C  03G 30  4154    
20030103    BGEN1C  03H 20  4158    
20030103    BGEN1C  03M 20  4174    

我认为这会起作用:

SELECT *,
(SELECT sum(oi * contract_settle) WHERE symbol=symbol) as oi_dollar
FROM ann

但它给出了这个:

date    symbol  cont    oi  contract_settle oi_dollar
20030103    NVLS1C      100 NA          NA
20030103    NVLS1C  03F 19  3125            59375
20030103    NVLS1C  03G 8   3128            25024
20030103    NVLS1C  03H 14  3130            43820
20030103    NVLS1C  03M 59  3140            185260
20030103    BGEN1C      90  NA          NA
20030103    BGEN1C  03F 20  4149            82980
20030103    BGEN1C  03G 30  4154            124620
20030103    BGEN1C  03H 20  4158            83160
20030103    BGEN1C  03M 20  4174            83480

谢谢!

【问题讨论】:

    标签: sqlite group-by aggregate-functions


    【解决方案1】:

    我不知道 SQLite,但我认为它支持 group by 子句,例如

    SELECT date, symbol, SUM(oi *  contract_settle) AS oi_dollar
      FROM add
     GROUP BY date, symbol;
    

    【讨论】:

    • 哇!确实如此!而且速度很快!谢谢!
    猜你喜欢
    • 2020-01-24
    • 2020-08-30
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    相关资源
    最近更新 更多