Teradata在聚合中乘以百分比

时间:2013-08-14 21:59:04

标签: sql aggregate teradata multiplying

我正在尝试进行agregate乘法。我将使用棒球示例。

样本表

team  player     battingavg  1-battingavg = nohitavg
1       A       0.123         0.877
1       B       0.144         0.856
1       C       0.210         0.790
2       E       0.142         0.858
2       F       0.231         0.769
2       G       0.125         0.875

我想聚合乘以得到没有命中的整体概率。

对于队伍1 =(0.877)*(0.856)*(0.790)=没有命中的概率 对于团队2 =(0.858)*(0.769)*(0.875)=没有命中的概率

1 - 没有命中的概率=至少1次命中的概率。

SELECT team
     , SOMEFUNCTION(nohitavg) as probofnohit 
FROM table 
GROUP BY team

期望的输出

team  probofnohit
1        0.593
2        0.577

1 个答案:

答案 0 :(得分:3)

数学上 PRODUCT(nohitavg) EXP(SUM(LN(nohitavg)))相同,但要小心这是基于FLOAD算术(15位数)精度),您可以在TD14中添加一个转换NUMBER(38位):

EXP(SUM(CAST(LN(nohitavg) AS NUMBER))))