【发布时间】: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