mysql - 如何使用MySQL统计概率并将计算值更新到原表?

标签 mysql sql probability

下面是一个示例,我如何使用一个简单的 MySQL 查询,我可以从步骤 1 -> 步骤 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

最佳答案

你到底想问什么?

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

更新:

这段代码将满足您的要求。只需将#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)

关于mysql - 如何使用MySQL统计概率并将计算值更新到原表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782674/

相关文章:

python:查询mongodb数据库以查找未知字段下的特定值

machine-learning - 使用 scikit 学习概率分布学习随机森林?

excel - Excel 中概率分布的熵

在空间上表示 3D 概率密度函数的算法、工具或技术

索引后 MySQL 仍然很慢

java - 使用 Spring 数据定位多对多额外关系属性

php - 无法在类中使用 PDO

sql - PL/pgSQL 函数在 pgAdmin 之外无法正确运行

mysql - SQL MACH() AGAINST() 关键字长度

SQL*Plus 显示带有单引号的无效字符