在SQL列上应用公式

时间:2015-01-15 04:02:31

标签: sql formula numeric

假设我有一个数字列,我想对这些值应用非平凡(不是sum或avg)公式。如何编写查询以获得所需的值。

例如,假设表T有一个名为number的列,我想找到该数字的倒数的乘积。

T.number
--------
1
2
3
4
5

我想获得价值:

  

1/1 + 1/2 + 1/3 + 1/4 + 1/5

我如何实现这一目标?我熟悉分组和汇总,但在这里我不需要分组,而是直接应用公式。

2 个答案:

答案 0 :(得分:4)

你的公式是倒数的总和。你会这样做:

select sum(1.0 / t.number)
from t;

不幸的是,大多数数据库不支持product功能。您可以通过获取日志并添加它们然后反转日志来完成此操作。具体功能因数据库而异,但类似这样:

select exp(sum(log(1.0 / t.number)))
from t;

答案 1 :(得分:0)

这是更精心设计的......

DECLARE @TempTbl TABLE
(
    Num DECIMAL(10,2)
)

INSERT INTO @TempTbl(Num) VALUES(1)
INSERT INTO @TempTbl(Num) VALUES(2)
INSERT INTO @TempTbl(Num) VALUES(3)
INSERT INTO @TempTbl(Num) VALUES(4)
INSERT INTO @TempTbl(Num) VALUES(5)


SELECT SUM(1.0/Num) FROM @TempTbl