在 SQL 列上应用公式

Applying Formula on a SQL Column

假设我有一个数字列,我想对这些值应用一个重要的(不是求和或平均)公式。我将如何编写查询以获得所需的值。

举个例子,假设 Table T 有一个名为 number 的列,我想求这个数的倒数的乘积。

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

我想获取值:

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

如何实现?我对分组聚合比较熟悉,这里不用分组,直接套公式

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

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

遗憾的是,大多数数据库不支持 product 函数。您可以通过获取日志并添加它们然后反转日志来执行此操作。具体函数因数据库而异,大致是这样的:

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

这更详细地表示...

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