2016-02-22 60 views
11

要钝我不知道SQL但我不想要答案,我想自己解决它。SQL将每条记录的列一起添加

这里的问题:

写SQL查询来计算的目标,为每个团队的数量。

球员

id name team_id goals 
1 Joel 1 3 
2 Ed 2 1 
3 Simon 2 4 

id name 
1 New Zealand 
2 London 

就是我要问的是,让我解决问题的信息的箭头。

我试过看自己,但我甚至不知道正确的术语问问题,谷歌搜索'写入SQL为每行添加字段'似乎返回添加列或插入。

+1

查看“GROUP BY”和聚合函数。 –

+0

+1为你的愿望**不**获得答案...寻找'INNER JOIN'通过'teams.id'和'players.team_id'获得与“players”表相关的“teams”表。比寻找'GROUP BY'和'SUM' – Shnugo

+0

检查这里阅读更多关于Shnugo关键词建议和例子http://www.w3schools.com/sql/default.asp –

回答

1

您需要首先尝试根据外键列来加入您的表(队中的id将与Player中的TeamId链接)。

然后,您需要执行GROUP BY并使用聚合函数SUM来获取每个团队的目标。

所以您的查询就会像:

select t.name, sum(p.goals) as cnt, 
from players p inner join teams t on p.teamid = t.id 
group by t.name 
+1

这应该是一个评论或有一个SQL例子.. – sagi

+1

你确定这足够回答吗?特别是如果有评论已经说明完全相同? – Shnugo

+2

我打算这样做,因为我提出的答案几乎完全一样(来自阅读资料),谢谢@all指出我在正确的方向。我决定不读这个,直到我想出了一个答案。 – Thermatix

0

首先你要组的玩家通过团队:通过使用t1.id = t2.id到表中加入的值,然后组主题为“ BROUP BY“t.name。

然后:用户“SUM(价值)”功能谁总和值。

select teams.name,sum(players.goals) from players,team where player.team_id=teams.id group by teams.name; 
+2

当教授现在只介绍给SQL的人时,请避免使用隐式连接语法。只使用正确的连接语法 – sagi

+0

好的,谢谢你的建议@sagi – Yaz

相关问题