0

うまくいけば、私が苦労しているデータベースの問題で私を助けることができます:)

次のようなテーブルがあるとします。

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 で同じことをしたいと思っていますが、ユーザーとトレーニングの繰り返しに苦労しています。あなたが私を助けてくれることを願っています。

4

1 に答える 1