1
我知道使用SQL Server來洗牌結果的正常方式是按NEWID()
排序,除了我希望改爲使用加權洗牌。SQL Server - 隨機抽取結果,但分配給每個記錄的權重
我的表中的每條記錄都有一個從1到10的整數'重要性'。我想訂購RAND()*Importance
,但SQL Server有RAND()
返回每個返回記錄的相同值。
有什麼想法嗎?
我知道使用SQL Server來洗牌結果的正常方式是按NEWID()
排序,除了我希望改爲使用加權洗牌。SQL Server - 隨機抽取結果,但分配給每個記錄的權重
我的表中的每條記錄都有一個從1到10的整數'重要性'。我想訂購RAND()*Importance
,但SQL Server有RAND()
返回每個返回記錄的相同值。
有什麼想法嗎?
謝謝。 ABS(CHECKSUM(NEWID()))/ 100 *重要性完美地完成了這項工作。 – billpg
你按重量計,隨機的,或者只是某種「裝骰子」,其中有10條將可能與1記錄前的平均訂單? – piotrpo
加載的骰子。如果我有兩條記錄,其中重要性值爲1和10,我希望看到10條記錄中的第一條出現在10次中的9次左右。 – billpg