如何计算概率并使用MySQL将计算值更新为原始表?

时间:2014-09-11 08:28:08

标签: mysql sql probability

下面是一个示例如何使用我可以从步骤1执行的简单MySQL查询 - >步骤4

第1步:原始表

object prob
dog
dog
cat
cat
book
book

第2步:计算对象

dog  2
cat  2
book 2

第3步:计算概率

dog  2/(2+2+2)
cat  2/(2+2+2)
book 2/(2+2+2)

步骤4:将概率值返回原始

Object prob
dog     2/6
dog     2/6
cat     2/6
cat     2/6
book    2/6
book    2/6

1 个答案:

答案 0 :(得分:1)

你到底在问什么?

您想知道如何统计每个项目并插入每个项目的概率吗?

<强>更新

这段代码可以满足您的要求。只需将#temp替换为您自己的表。

    DECLARE @object nvarchar(max)

    DECLARE object_cursor CURSOR FOR 
        SELECT object
        FROM #temp

    OPEN object_cursor

    FETCH NEXT FROM object_cursor
    INTO @object

    WHILE @@FETCH_STATUS = 0
    BEGIN

        UPDATE #temp
        SET prob = (
                    SELECT
                        COUNT(object)
                    FROM #temp
                    WHERE object = @object          
        )

        FETCH NEXT FROM object_cursor
        INTO @object

    END
    CLOSE object_cursor
    DEALLOCATE object_cursor

    UPDATE #temp
    SET prob = prob / (select SUM(prob) from #temp)