2016-02-22 14 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あなたの願いではありません**答えを得るには... 'teams.id'と' players.team_id'を介して 'players'テーブルに接続された 'teams'テーブルを取得するために 'INNER JOIN'を探します。 'GROUP BY'と' SUM'を探すより – Shnugo

+0

Shnugoについての詳細はこちらをご覧くださいキーワード提案と例http://www.w3schools.com/sql/default.asp –

答えて

1

外部キー列に基づいて、まずテーブルに参加する必要があります(チームのIDはプレイヤーの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

助言@サギのおかげで、ありがとう – Yaz

関連する問題