2010-12-04 109 views
1

我有這個表:SQL查詢 - 所有的數據庫查找項目的價值

Trans_ID Name Fuzzy_Value Total_Item 
100   I1 0.33333333  3 
100   I2 0.33333333  3 
100   I5 0.33333333  3 
200   I2 0.5    2 
200   I5 0.5    2 
300   I2 0.5    2 
300   I3 0.5    2 
400   I1 0.33333333  3 
400   I2 0.33333333  3 
400   I4 0.33333333  3 
500   I1 0.5    2 
500   I3 0.5    2 
600   I2 0.5    2 
600   I3 0.5    2 
700   I1 0.5    2 
700   I3 0.5    2 
800   I1 0.25    4 
800   I2 0.25    4 
800   I3 0.25    4 
800   I5 0.25    4 
900   I1 0.33333333  3 
900   I2 0.33333333  3 
900   I3 0.33333333  3 
1000   I1 0.2    5 
1000   I2 0.2    5 
1000   I4 0.2    5 
1000   I6 0.2    5 
1000   I8 0.2    5 

我需要掃描的每個唯一項目的所有數據庫再算上除以總交易劃分爲項目各模糊值的總和(這是10在該表中)

實施例:

I1 = Sum of (Fuzzy_Value from item I1 in trans 100 until 1000) 
    -> (0.33333333+0.33333333+0.5+0.5+0.25+0.33333333+0.2)/10 = 0.244999999 

,你可以看到在I1交易100,400,500,700,800,900,1000存在;
價值0.33333333+0.33333333+0.5+0.5+0.25+0.33333333+0.2 除以總交易,我們得到所需的數量。

ITEM_SET   Support 
{I1}    0.244999999 
{I2}    0.274999999  
{I3}    0.258333333  
{I4}    0.103333333 

我該怎麼做?

回答

1

用途:

SELECT t.name AS item_set, 
     SUM(t.fuzzy_value)/COUNT(*) AS support 
    FROM TRANS t 
GROUP BY t.name 

如果需要通過TRANS_ID限制:

SELECT t.name AS item_set, 
     SUM(t.fuzzy_value)/COUNT(*) AS support 
    FROM TRANS t 
    WHERE t.trans_id BETWEEN 100 AND 1000 
GROUP BY t.name 
+0

完美的作品THX:d – Rico 2010-12-04 04:40:44

相關問題