2017-04-01 4 views
0

チームが勝った回数と損失が一致した回数を検索します。 (、チームが勝った回数と損失が一致した回数を確認します。

がTEAMNAME AS team.t SELECT、(SELECT COUNT(*)FROM TeamTable = team.tウォン)勝ったAS:

Find how many times team has won and loss the matches ? 
 
My Table Structure 
 

 
TeamA | TeamB | Won 
 
A  | D  | D 
 
B  | A  | A 
 
A  | D  | A 
 

 
Result should be like below 
 

 
TeamName | Won | Lost 
 
A  | 2 | 1 
 
B  | 0 | 1 
 
D  | 1 | 1

+2

あなたは本当にあなたが試したことを示す必要があります。 –

答えて

0

あなたは、このクエリを使用して正しい結果が得られますSELECT WHERE WIN!= team.t AND(TeamA = team.t || TeamB = team.t))AS Lost FROM(SELECT = TeamAからTeamTableからUNION SELECT TeamBをTeamTableから)チーム

+0

あなたの親切な助けをGurubakshありがとう。 –

0

条件付き集計ユニオンと組み合わせてデータを正規化することができます。

SELECT A.Team as TeamName, 
SUM(CASE WHEN A.TeamA=A.Won then 1 else 0 end) as Won 
SUM(CASE WHEN A.TeamA<>A.Won then 1 else 0 end) as Lost 
FROM (SELECT TeamA as Team, Won 
     FROM TABLE 
     UNION ALL 
     SELECT TeamB as Team, Won 
     FROM Table 
    ) A 
GROUP BY A.Team 
0

まず、teamAとteamBの結合を使用してすべてのチームをフェッチする必要があります。

これが完了したら、勝ちチームでグループごとに行うことで、勝利チームをカウントすることができます。

チームが勝った場合は、それが失われていることを意味します。ヌルでないということは、勝利した回数がゲームに勝った回数にほかならないことを意味します。以下は同じもののクエリです

t.teamを選択します。ウォンがヌルでない場合は0、ウォンはエンド、ウォンがnullの場合は1、その他の場合は0から失われます。(のteamAチームを選択団体 チームBをテーブルから選ぶ)t left join (ウォンで表グループから勝利を選んでください)m。t.team = m.wonで

関連する問題