ホーム>source

私はこれに対する解決策を見つけるために一生懸命努力していますが、それを行う方法がわかりません。

ゲームで行ったキルを挿入し、キラー、彼の血盟、被害者、被害者の血盟を記録しているので、私のデータベースは次のようになります。

<前>ウィズウィズ

同じユーザーが殺人者または犠牲者として表示される可能性は、彼が誰かを殺したか、誰かによって死亡したかによって異なります。

のユーザーの合計キル数を表示できます特定のクラン 沿って、

<前>ウィズウィズ

同じロジックで、ユーザーの合計死亡数を表示できます特定のクラン 沿って、

<前>ウィズウィズ

しかし...私がしたいことは、2つのクエリを組み合わせて、ユーザーの殺害グループと死亡グループを名前で表示することです。キラー 最初のケースの列と犠牲者 2番目のケースの列なので、最終的には殺害率/死亡率を提示できるようになりますが、最初のケースではクランは次のように見つかるため、別のWHERE原因が必要です。キラークラン そして2番目のケースでは犠牲者クラン

目標は、そのような結果を得ることです。

<前>ウィズウィズ

すべての提案を歓迎します。

killer | killerClan | victim | victimClan ----------------------------------------- User_A | Team_A | User_B | Team_B User_C | Team_B | User_A | Team_A User_B | Team_B | User_A | Team_A User_D | Team_A | User_C | Team_B User_C | Team_B | User_A | Team_A User_B | Team_B | User_D | Team_A User_D | Team_A | User_C | Team_B
あなたの答え
  • 解決した方法 # 1

    あなたは union all を使うことができます  と集計:

    <前>ウィズウィズ select username, sum(kills) kills, sum(deaths) deaths, sum(kills) - sum(deaths) kdRatio from ( select killer username, count(*) kills, 0 deaths from master_tracker where killerClan = 'TeamA' group by killer union all select victim, 0, count(*) from master_tracker where victimClan = 'TeamA' group by victim ) t group by username order by kdRatio desc

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ android - リーンバックインテントの欠落に関するGoogle Playの警告