私の質問はこれに似ています: 行を比較してパーセンテージを取得する
ただし、少し異なります。私は自分の質問を他の投稿に適合させました。
私は2つのテーブルを手に入れました。
最初のテーブル:
user_id | post_id
1 1
1 2
1 3
2 12
2 15
そして2番目のテーブル:
post_id | rating
1 1
1 2
1 3
2 1
2 5
3 1
3 1
3 4
12 4
15 1
それでは、2 番目の表で、各投稿の評価を数えたいと思います。評価に 50% 以上の肯定的な評価がある場合は、post_id を取得し、それをテーブル 1 から post_id に移動して、user_id に 1 を追加します。
最後に、肯定的な投稿の数とともに user_id を返します。
上の表の結果は次のようになります。
user_id | helpfulPosts
1 2
2 1
post_id 1 と 3 の投稿は、50% 以上が 1 ~ 3 の評価を持っているため、肯定的な評価を持っています。id = 2 の投稿は、評価がちょうど 50% であるため、肯定的ではありません。
どうすればこれを達成できますか?
明確にするために:これはmysql rdbmであり、1、2、および3のrating_idの数が全体の評価の半分以上である肯定的な投稿です。上に投稿した他のスレッドから、基本的に同じこと。
1 つ忘れていました: posts テーブルに 1 つの post_id が存在する可能性もありますが、ratings_table には評価がありません。それらの投稿も役立つと見なされます。評価としてのケースnull
は、私の側の誤解でした。