因此我搜索並發現了很多類似於我的問題,例如 MYSQL - get a row for each year, with total sum for each month但我正在尋找不同的方式。我使用拉曼數據庫,每年都會通過WAR查找前十名玩家。然後,我將這些球員的年齡平均分配給該賽季的平均年齡。我試圖每年都這樣做,但我堅持如何做到這一點。獲取顯示每年發現的平均值的行列表MYSQL
SELECT AVG(t.age) As AverageAge, w.yearID
FROM (SELECT w.playerID, w.age
From war_batting w, Master m
WHERE w.playerID = m.playerID AND w.yearID = 2012
ORDER by w.WAR desc
LIMIT 10) t,
war_batting w;
這顯示了該賽季前10名球員的平均水平,所以我期待着在每個賽季都這樣做。在我鏈接到的帖子中,我看到他們會爲他們需要的每個價值做到這一點,但我正在尋找一種不涉及重複相同代碼近150年的方式。我已經在Java和C++中編程,所以很自然地,我正在尋找一種方法來循環使用我所擁有的功能,並且在當前年份之前不斷添加1到年份ID。我很難理解如何做到這一點。上面的代碼還將2004年的yearID返回爲2004年,而不是2012年,但我更有信心解決這個問題,因爲我很確定自己在其他測試中有這種能力。此外,如果代碼塊不能很好地發佈時,我會嘗試修復它,因爲這是我的第一篇文章。
主人是從一個不同的代碼遺留下來的,但是我不需要那個。至於你的樣本,它經歷了幾年,但每年的平均年齡值都是不正確的。我不知道爲什麼,但我會看看我是否可以使用它來獲得我需要的東西。 – ATV360
我真的不知道爲什麼,但是當我在測試中的where語句中刪除w.playerID = m.playerID時,發現這些值只有一年,它只返回1號玩家的年齡。在這個顯示前十名球員的情況下,它也將只顯示他10次。 – ATV360
我只是試着將這個語句和主表添加回你的程序,現在它完美地工作。我仍然不完全確定它爲什麼這樣工作,但非常感謝你的幫助! – ATV360