一个叫做
trades
另一个叫做
yields
交易有以下列
common_id (which marks the trades that belong together)
type (buy or sell)
amount
产量有以下列
common_id (which is the one from trades but will only appear once now)
yield
收益率字段计算如下:如果交易是"买"然后减去它的价值,如果交易是"出售"然后添加值。
所以基本上有几个交易属于一起,由common_id字段显示。从这些交易中我想计算收益率 然后对属于一起的下一个交易执行相同的操作,等等。
现在问题就在于此。 "交易" table最初是建立起来的,并且可以变得非常庞大,之后我想建立第二个表" yield"。对于初始构建,这很容易。问题是如何在应用程序中断并且我已经有两个表时执行此操作。
所以我需要"交易"使用尚未包含的common_id"产生"之后我计算产量并将其存储在"产生"。
有人有什么想法吗?
此致
答案 0 :(得分:0)
您可以在一个insert
语句中处理此问题:
INSERT INTO yields
(SELECT common_id, SUM (CASE type WHEN 'buy' THEN -1 * amount
WHEN 'sell' THEN amount
ELSE 0 -- just a precaution
END)
FROM trades
WHERE common_id NOT IN (SELECT common_id FROM yields)
GROUP BY common_id)
答案 1 :(得分:0)
我会删除表格产量并再次建立起来。我认为这是最简单的方法,并且运行得更快,然后贯穿所有行