次の構造を持つ2つのテーブルがあります。
表1:プレーヤーが行った試行回数を表示します。
Player_id, n_tries, date
表2:プレーヤーが行ったヒット数を表示します。
Player_id, n_hits, date
最後に、プレーヤーが今日持っているヒットの割合(試行とヒット)と、今日から1週間前までのヒットの増分/減分を取得したいと思います。そして、結果を(今日の)ヒット数の子孫の割合で並べ替えたいと思います。したがって、たとえば、id = 1のプレーヤーと、id = 2のプレーヤーがいる場合、次のデータを使用します。
表1:
1, 10, "2012-10-14"
2, 13, "2012-10-14"
1, 20, "2012-10-7"
2, 15, "2012-10-7"
表2:
1, 5, "2012-11-14"
2, 10, "2012-11-14"
1, 0, "2012-11-7"
2, 3, "2012-11-7"
私は最終的にこれを示す必要があります:
Player_id、ヒット率(今日)、ヒット数の差(今日と1週間前)
2 77% +233%
1 50% +100% (actually is infinite -> (5 - 0)/0 )
両方のテーブルから値を取得するためのクエリがあります。
最初の表-試行回数:
SELECT player_id, date, sum(n_tries)
FROM player_tries
WHERE (d_date = CURDATE() OR d_date = DATE_SUB(CURDATE(), INTERVAL 7 DAY))
GROUP BY date, player_id
ORDER BY player_id, date
プレーヤーは特定の日に複数行の試行を行うことができるため、sum(n_tries)を実行します。
2番目の表-ヒット数:
SELECT player_id, date, sum(n_hits)
FROM player_hits
WHERE (d_date = CURDATE() OR d_date = DATE_SUB(CURDATE(), INTERVAL 7 DAY))
GROUP BY date, player_id
ORDER BY player_id, date
したがって、私の質問は次のとおりです。最初のクエリから次のような結果のリストを取得した場合:
Player_id, date, n_tries
1 2012-11-07 20
1 2012-11-14 10
2 2012-11-07 15
2 2012-11-14 13
そして2番目の表から私はこれを得る:
Player_id, date, n_hits
1 2012-11-07 0
1 2012-11-14 5
2 2012-11-07 3
2 2012-11-14 10
これらの結果を混合し、ヒット率(今日)で順序付けられたある種の構造を持つことができるようにするための最良の方法は何でしょうか?