亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

QL - 將兩個具有不同 WHERE 原因的計數和按用戶名分組

QL - 將兩個具有不同 WHERE 原因的計數和按用戶名分組

PHP
慕容森 2022-09-17 21:36:59
我正在努力尋找解決這個問題的方法,但我看不到一種方法。我正在插入游戲中的殺戮,我正在記錄兇手,他的氏族,受害者和受害者的氏族,所以我的數據庫看起來像這樣,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


查看完整回答
反對 回復 2022-09-17
  • 1 回答
  • 0 關注
  • 108 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號