2017-07-29 70 views
0

我正在研究一些SQL作业,可能有人向我解释如何完成此问题。SQL对于每条语句

  • 显示团队的平均原始分数“海豚(1点)
  • 这里是数据结构的图像。

    DataStructure

    我需要返回的4名选手的平均原始分数的查询。 但是,当我尝试执行下面的代码时,它只返回一个平均值。

    /* Question 2 */ 
    SELECT AVG(RawScore) 
    FROM Bowler_Scores 
    WHERE BowlerID IN 
    (
    SELECT BowlerID 
    FROM Bowlers 
    WHERE TeamID = 
    (
    SELECT TeamID 
    FROM Teams 
    WHERE TeamName = "Dolphins")); 
    

    在投球手得分中,每个投球手可以有多个得分。例如它可能有记录 - (43,101)(50,301)和(43,106)。

    我不知道如何编写和sql语句,可以得到该团队中每个玩家的平均原始分数,其中包括原始分数表中所有单独的原始分数。

    +0

    这是一个非常糟糕的方式去做,它并没有真正解决OP的问题。另外,请不要在评论中张贴代码。 –

    回答

    1

    如果您需要的个人平均得分为海豚队的每一个成员,你可以使用这个:

    Select Teams.TeamName, Bowlers.BowlerID, avg(Rawscore) 
    from Bowlers 
    inner join Teams 
    on Bowlers.TeamId = Teams.TeamID 
    inner join Bowler_Scores 
    on Bowlers.BowlerID = Bowler_Scores.BowlerID 
    where teams.teamname = 'Dolphins' 
    group by TeamName, BowlerID 
    

    如果你只是需要一个平均得分为球队然后就从选择和分组取出BowlerID BY线。

    +0

    它说错误1052列字段列表中的BowlerID不明确 –

    +0

    将表名添加到列中(请参阅示例的连接的on子句) –

    +0

    您还需要添加一个where子句以将结果限制为一个所需的团队名称。 –