我試圖從這裏解決問題13:http://sqlzoo.net/wiki/The_JOIN_operation其中我應該「列出每個匹配與每個團隊得分的目標 」。我認爲這將是答案:爲什麼我的SQL查詢返回沒有行,總和爲0
SELECT
mdate, team1,
SUM(CASE WHEN teamid = team1 THEN 1 ELSE 0 END) score1,
team2,
SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END) score2
FROM
game
JOIN
goal ON matchid = id
GROUP BY
team1, team2, mdate
ORDER BY
mdate
然而,這查詢不返回行,如果兩隊得分爲0。我試圖在ISNULL
和COALESCE
包裹SUM
,但它並不能幫助。
要告訴你真相,我並不是在尋找如何解決問題的答案,而是解釋爲什麼當分數爲0時,此查詢未顯示行的答案。此外,如果有人可以幫我找到0 column_name
或1 column_name
背後的含義(因爲它似乎是CASE
以上的結果),它似乎是0 * column_name或1 * column_name,但我不確定,並且谷歌充滿當我試圖尋找答案時,無關的結果。
PS:是的,我看過具有相同或類似名稱的前20分建議的堆棧溢出的問題,我很抱歉,如果這是一個重複的