第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何簡化此游戲統(tǒng)計(jì)查詢?

如何簡化此游戲統(tǒng)計(jì)查詢?

慕絲7291255 2019-07-25 10:24:33
如何簡化此游戲統(tǒng)計(jì)查詢?這段代碼按預(yù)期工作,但我很長很令人毛骨悚然。select p.name, p.played, w.won, l.lost from(select users.name, count(games.name) as playedfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id > 0group by users.nameunionselect users.name, count(games.name) as playedfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id > 0group by users.name) as pinner join(select users.name, count(games.name) as wonfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id = users.idgroup by users.nameunionselect users.name, count(games.name) as wonfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id = users.idgroup by users.name) as w on p.name = w.nameinner join(select users.name, count(games.name) as lostfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id != users.idgroup by users.nameunionselect users.name, count(games.name) as lostfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id != users.idgroup by users.name) as l on l.name = p.name如您所見,它由3個(gè)重復(fù)部分組成,用于檢索:玩家姓名和他們玩的游戲數(shù)量球員名稱和他們贏得的比賽數(shù)量球員姓名和他們輸?shù)舻谋荣悢?shù)量每個(gè)人還包括兩部分:玩家姓名以及他們作為player_1參與的游戲數(shù)量玩家姓名以及他們作為player_2參與的游戲數(shù)量怎么可以簡化?結(jié)果如下:           name            | played | won | lost ---------------------------+--------+-----+------ player_a                  |      5 |   2 |    3 player_b                  |      3 |   2 |    1 player_c                  |      2 |   1 |    1
查看完整描述

3 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是相關(guān)子查詢可以簡化邏輯的情況:

select u.*, (played - won) as lostfrom (select u.*,
             (select count(*)
              from games g              where g.player_1_id = u.id or g.player_2_id = u.id             ) as played,
             (select count(*)
              from games g              where g.winner_id = u.id             ) as won      from users u     ) u;

這假設(shè)沒有聯(lián)系。


查看完整回答
反對 回復(fù) 2019-07-25
  • 3 回答
  • 0 關(guān)注
  • 539 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號