我有这张表:
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
我该怎么做?
答案 0 :(得分: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