不知道這是正確的標題。我需要找到像運行總數一樣的cumulative multiplication
。如何找到運行乘法
搜索了論壇,並得到了很好的answer。但這不是我的確切答案。
這樣修改了我的要求的答案。
SELECT *,
(SELECT CASE
WHEN Min(Abs(Column1)) = 0 THEN 0
ELSE Exp(Sum(Log(Abs(NULLIF(Column1, 0))))) -- the base mathematics
* Round(0.5 - Count(NULLIF(Sign(Sign(Column1) + 0.5), 1))%2, 0) -- pairs up negatives
END
FROM TEMP a
WHERE B.ID >= A.ID) as Running_Mul
FROM TEMP B
我得到了我的答案。現在在Sql Server 2008
有沒有更好的方法呢?
的樣本數據:
ID Column1
-- -------
1 1
2 2
3 4
4 8
5 -2
預期結果:
ID Column1 Running_Mul
-- ------- -----------
1 1 1
2 2 2
3 4 8
4 8 64
5 -2 -128
http://mangalpardeshi.blogspot.in/2009/06/multiplying-column-values.html – mohan111 2015-02-09 12:42:12