我有大约 100 万条记录,用于在 24 天内(每天一条)回答问题。
我想要完成的是全天收集所有正确答案,然后进行彩票选择,例如,如果订阅者正确回答了所有 24 个答案,他/她就有了与只正确回答一个答案的订阅者相比,被选中的可能性更高。。
我正在使用 Linq-to-Sql 因为我更习惯使用它,而不是纯 T-SQL,即使这将是 T-SQL 的搬运工,但 LinqPad在这方面帮助我,所以这是我到目前为止所得到的:
// all correct answers id's
var correct = from a in JK_ChallengeAnswers
where a.correct
select a.challenge_answer_id;
// all correct answers
var query = from cr in JK_ChallengeResponses
where correct.Contains(cr.challenge_answer_id)
select cr;
query.Count().Dump(); // 978144
var random = new Random();
int pos = random.Next(query.Count()); // random select
query.Skip(pos).Take(1).Dump(); // get one...
这是直截了当的……而且是线性的,没有“票”的方法,在这里,一个人回答了 1 个问题,作为回答了所有 24 个问题的人获胜的确切百分比……
我将如何去尝试彩票方法,我下一步应该做什么?
无需向我展示代码,我可以得到它,只有步骤,因为我无法以某种方式得到它们。
- 创建一张彩票表。
- 对于每位订阅者,针对他们答对的每个问题,将他们的条目输入表格一次。
- 从该表中随机选择一条记录。
我是一名优秀的程序员,十分优秀!