希望您能帮助我解决我正在努力解决的数据库问题:)
假设我有一个如下表:
id | user_id | training_id | date | performance | best
1 | 7042 | 11 | 2013-07-23 13:43:29 | 654 | true
2 | 7042 | 11 | 2013-07-25 15:22:59 | 703 | false
3 | 2344 | 12 | 2013-07-26 09:20:12 | 400 | true
...
该表包含用户 (user_id) 已免除的培训 (training_id)。当用户以比以前所有此类培训 (training_id) 更好的性能免除培训时,他拥有最好的 (best = true)。我现在想添加一个辅助列“last_best”,以便我可以查询给定用户每次培训的最后一次最佳成绩。为了提供缺少 last_pb 的值,我想对数据库中的所有训练运行一个脚本。
我的第一种方法是在 Rails 控制台中迭代所有培训和用户。但是,这种方法确实很慢。大约 70.000 名用户和 200.000 次培训的数据集大约需要 36 小时。
现在我想对 SQL 做同样的事情,但我正在努力迭代用户和培训。希望你能在那里帮助我。