【问题标题】:SQL Average Group BySQL 平均分组依据
【发布时间】:2014-02-26 13:42:07
【问题描述】:

我有两张表,Players 和 GameLog。

Players 有 Position 和 Player_ID

GameLog 包含 Player_ID、对手和得分

我的目标是按位置“C”返回过去 15 天对每个对手的平均得分

这是我正在使用的查询:

SELECT DISTINCTROW NBAGameLog.Opp, 
     (SELECT AVG(NBAGameLog.Points)
     FROM NBAGameLog INNER JOIN Players ON NBAGameLog.Player_ID = Players.Player_ID
     WHERE (((NBAGameLog.Date_Played) Between Date()-15 And Date())) AND Players.Position = "C") AS Expr1
FROM Players INNER JOIN NBAGameLog ON Players.Player_ID = NBAGameLog.Player_ID
GROUP BY NBAGameLog.Opp;

这将返回所有球队的列表和总平均得分,而不是按球队分开。例如,它返回:

ATL 19.12
BOS 19.12
NY  19.12

什么时候应该显示对ATL的平均分,对BOS的平均分等。

有什么想法吗?

【问题讨论】:

  • 哈哈,先是三双问题现在这个,你是想预测NBA比赛还是什么?如果你最终得到了一个好的系统,请告诉我 ;)

标签: sql ms-access group-by average


【解决方案1】:

这是你的问题:

我的目标是按位置“C”返回过去 15 天对每个对手的平均得分

这不需要花哨的步法来回答。这似乎是一个基本的聚合查询。我想这就是你想要的:

SELECT NBAGameLog.Opp, AVG(NBAGameLog.Points)
FROM Players INNER JOIN
     NBAGameLog
     ON Players.Player_ID = NBAGameLog.Player_ID
WHERE (NBAGameLog.Date_Played Between Date()-15 And Date() AND
      Players.Position = "C"
GROUP BY NBAGameLog.Opp;

【讨论】:

  • 哇,我觉得自己很傻......我觉得我尝试过这样的事情,但它不起作用。这么简单,谢谢!此外,它不会让我这么快接受答案,但我会尽快做......再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多