SQL查询 - 事务中数据的SUM(对于每个事务)

时间:2010-12-04 15:54:15

标签: sql

我有这张桌子:

Trans_ID    Name    Value    Total_Item  
100          I1     0.33333333        3  
100          I2     0.33333333        3  
400          I1     0.33333333        3  
400          I2     0.33333333        3  
800          I1     0.25              4  
800          I2     0.25              4    
900          I1     0.33333333        3  
900          I2     0.33333333        3    
1000         I1     0.2               5  
1000         I2     0.2               5  

我需要进入:

ITEM      VALUE        
I1,I2     0.28999998      

价值根据所有交易/总交易中每个项目的总和计算

EX: item I1 & I2 at trans 100

(0.33333333 + 0.33333333) = 0.666666666

trans 400

(0.33333333 + 0.33333333) = 0.666666666

trans 800
(0.25+0.25) = 0.5

trans 900

(0.33333333 + 0.33333333) = 0.666666666

trans 1000

(0.2+0.2) = 0.4

So Value will be:

(0.666666666+0.666666666+0.5+0.666666666+0.4)/10= 0.28999998

*since total transaction in this table is example table 10. there's aprox 50k transaction in my real table

请注意,每个交易的Total_item值是固定的,并且没有错误(请注意,trans 100只有2个项目,我总共放3个项目)

我正在使用ms访问(但一般的sql查询很好)

1 个答案:

答案 0 :(得分:1)

如果您的流程正确无误,那么您所使用的所有分组都不是必需的 - 如果没有分组,则值相同。那就是:

  

((T100_I1 + T100_I2)+(T400_I1 + T400_I2))/ 4 =(T100_I1 + T100_I2 + T400_I1 + T400_I2)/ 4 =

换句话说,要获得您想要的值,您只需要将所有值相加并除以它们的数量。

select sum(value)/count(*) 
from table