【问题标题】:SQL Server - Shuffle results randomly, but with a weight assigned to each recordSQL Server - 随机随机播放结果,但为每条记录分配权重
【发布时间】:2011-07-06 18:00:04
【问题描述】:

我知道使用 SQL Server 随机播放结果的常规方法是按NEWID() 排序,但我想改用加权随机播放。

我表中的每条记录都有一个从 1 到 10 的整数“重要性”。我想按 RAND()*Importance 排序,但 SQL Server 的 RAND() 为返回的每条记录返回相同的值。

有什么想法吗?

【问题讨论】:

  • 您的意思是按重量排序、随机排序还是只是某种“加载骰子”,其中 10 的记录可能在 1 的记录之前?
  • 加载骰子。如果我有两条记录,重要性值为 1 和 10,我希望看到 10 的记录在 10 次中出现大约 9 次。

标签: sql sql-server random sql-server-express sql-server-2008-express


【解决方案1】:

【讨论】:

  • 谢谢。 ABS(CHECKSUM(NEWID())) / 100 * Importance 完美地完成了这项工作。
猜你喜欢
  • 2014-08-04
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
相关资源
最近更新 更多