相关疑难解决方法(0)

T-SQL中的随机加权选择

如何根据所有候选行的应用权重在T-SQL中随机选择一个表行?

例如,我在一个表中有一组行加权为50,25和25(最多加100但不需要),我想随机选择其中一行,其统计结果相当于各自的重量.

t-sql sql-server random

24
推荐指数
2
解决办法
7585
查看次数

在大数据库上快速mysql随机加权选择

我建立了一个网站,我需要从数据库中选择随机加权记录.

SQL中有一段代码:随机选择一行,但要考虑权重

SELECT t.*, RAND() * t.weight AS w 
FROM table t 
ORDER BY w DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

它适用于小型记录样本.

当尝试接近1百万的记录时,它在我的本地机器上变慢(1.3 - 1.8秒),我想我会在更大的设备上花更长的时间.

怎么可以优化?有没有更好的方法来随机选择加权记录?

我的尝试是定期计算权重,将它们存储在单独的表中,选择随机数编程并搜索与此数字最接近的记录.

mysql sql random

5
推荐指数
1
解决办法
776
查看次数

标签 统计

random ×2

mysql ×1

sql ×1

sql-server ×1

t-sql ×1