2016-12-17 67 views
1

我有一個MySQL表中的幻想足球聯盟的數據。我想查詢一個php頁面的數據。幻想足球:將球隊平均得分與聯盟平均水平進行比較?

如何創建一個查詢來計算團隊的得分與該年度得分的聯盟平均得分相比較?

我(簡化)數據表看起來像這樣:

遊戲桌:

year | team | Week | Points 
2016 | Wildcats | 1 | 44 
2016 | Wildcats | 2 | 52 
2015 | Hawks | 1 | 36 
2015 | Hawks | 2 | 58 
2016 | Hawks | 1 | 43 

我怎麼會發現在2016年(48.0)野貓的平均之間的差異,所有球隊的平均在2016年(46.3)?

我可以使用這個查詢來計算這兩個數字,但不知道如何做減法。

SELECT g1.year, g1.team, AVG(g1.points) as ppg, 
    (SELECT AVG(points) 
    FROM game AS g2 
    WHERE g2.year=g1.year) AS seasAvg 
FROM game AS g1 
GROUP BY g1.team, g1.year 
ORDER BY ppg 
+0

它看起來好像你可以弄清楚這一點,雖然;你看起來如此密切。 – Strawberry

+0

是@Strawberry很高興看到已經採取真正努力的問題以及樣本數據。這些標籤稀有 – e4c5

回答

1

裹在外層查詢整個事情,那麼你就可以計算出的差異,同時保持簡短而親切。

SELECT a.*, ppg - seasAvg AS diff FROM (
    SELECT g1.year, g1.team, AVG(g1.points) as ppg, 
     (SELECT AVG(points) 
     FROM game AS g2 
     WHERE g2.year=g1.year) AS seasAvg 
    FROM game AS g1 
    GROUP BY g1.team, g1.year 
    ORDER BY ppg 
) AS a