我目前有一個查詢表,目前計算基於以前的勝利和損失人爲排名。對於一個球隊來說,一個球隊被記入+1,而一個球隊的損失則爲-1。通過迭代跟蹤「條紋」sql
截至目前爲止,我現在已經確定了球隊的最終數據,但是我期待的是追蹤連勝的上升和下降。
這裏是鏈接到http://sqlfiddle.com/#!2/d87d8/1 SQLFIDDLE
這裏就是我要找:
Team | Streak
'Team A' 0
'Team B' 0
'Team C' 0
'Team D' 0
'Team A' 1
'Team B' -1
'Team C' 1
'Team D' -1
'Team A' 2
'Team B' -2
'Team C' 0
'Team D' 0
'Team A' 1
'Team B' -3
'Team C' 1
'Team D' 1
解決
SELECT teamName, (
SELECT sum(CASE matchVictory WHEN 1 then 1 else -1 end)
FROM poolOfTeams b
WHERE b.gameId<=temp.gameId
AND b.teamName=temp.teamName) as Streak
FROM temp
GROUP BY teamName, gameId
ORDER BY teamName, gameId;
使用由德韋恩Towell提供的select語句,我只必須插入一個案例陳述。
我想你應該有一個額外的列,將它們組合在一起,否則沒有邏輯分組。例如,爲什麼要在第一條記錄中同時計算遊戲ID 1和2,而不是2和3。 –
它可以按teamName分組。所以這會是A隊0,A隊1,A隊2,A隊1等 – TaylorM
解釋清楚你的桌面很困惑。 – Sathish