我正在努力尋找解決這個問題的方法,但我看不到一種方法。我正在插入游戲中的殺戮,我正在記錄兇手,他的氏族,受害者和受害者的氏族,所以我的數據庫看起來像這樣,killer | killerClan | victim | victimClan-----------------------------------------User_A | Team_A | User_B | Team_BUser_C | Team_B | User_A | Team_AUser_B | Team_B | User_A | Team_AUser_D | Team_A | User_C | Team_BUser_C | Team_B | User_A | Team_AUser_B | Team_B | User_D | Team_AUser_D | Team_A | User_C | Team_B同一用戶可以顯示為殺手或受害者,這取決于他是否殺死了某人或被某人殺死。我可以通過以下方式顯示特定氏族的用戶的總殺戮,SELECT killer AS username, COUNT(killer) AS kills FROM master_trackerWHERE killerClan = "Team_A"GROUP BY killerORDER BY kills DESC通過同樣的邏輯,我可以通過以下方式顯示特定氏族的用戶的總死亡人數,SELECT victim AS username, COUNT(victim) AS deaths FROM master_trackerWHERE victimClan = "Team_A"GROUP BY victimORDER BY deaths DESC但。。。我想做的是將這兩個查詢結合起來,并按他們的名字顯示用戶的殺戮和死亡組,這可以在第一種情況下的殺手列和第二種情況下的受害者列中找到,因此最終能夠呈現他們的殺戮/死亡比率,但我需要不同的位置原因,因為在第一種情況下,他們的氏族可以被發現為殺手族,在第二種情況下可以找到受害者族。目標是獲得這樣的結果。username | kills | deaths | kdRatio----------------------------------- User_D | 2 | 1 | 1 User_A | 1 | 3 | -2歡迎所有建議。
1 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
您可以使用和聚合: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
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消