我有一个表jydb.MF_KeyStockPortfolio,里面有innercode,reportdate,stockinnercode,rationnv这几列。现在我要求对于每一个innercode在每一个reportdate中,将他的所有栏的rationnv加起来,生成新的一列,请帮我实现
时间: 2023-07-15 14:15:50 浏览: 100
您可以使用以下SQL语句实现您的需求:
```
ALTER TABLE jydb.MF_KeyStockPortfolio ADD COLUMN total_rationnv DOUBLE;
UPDATE jydb.MF_KeyStockPortfolio AS t1
SET t1.total_rationnv = (SELECT SUM(t2.rationnv)
FROM jydb.MF_KeyStockPortfolio AS t2
WHERE t2.innercode = t1.innercode AND t2.reportdate = t1.reportdate);
```
这里我们首先通过 ALTER TABLE 命令在表 jydb.MF_KeyStockPortfolio 中添加了一列 total_rationnv,用于存储每个 innercode 在每个 reportdate 中的所有栏的 rationnv 总和。然后,我们使用 UPDATE 命令将 total_rationnv 列的值计算出来并更新到表中。具体来说,我们在更新语句中使用了一个子查询,来查询每个 innercode 在每个 reportdate 中的所有栏的 rationnv 总和,并将其赋值给相应的 total_rationnv 列。
阅读全文