2016-02-22 7 views
11

Szczerze mówiąc nie znam języka SQL, ale nie chcę odpowiedzi, chcę to sam rozwiązać.SQL dodawać kolumny każdego rekordu razem

Oto pytanie:

Napisz zapytanie SQL aby obliczyć liczbę goli dla każdej drużyny.

gracze

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

zespoły

id name 
1 New Zealand 
2 London 

Co Pytam o to strzałka do informacji, która pozwoli mi rozwiązać kwestię.

Próbowałem już wyglądać, ale nawet nie znam prawidłowej terminologii, aby zadać pytanie, użyj go do wpisania "write sql, aby dodać pola dla każdego wiersza", po prostu wydaje się zwracać o dodawaniu kolumn lub wstawianiu.

+1

Zobacz "GROUP BY" i funkcje zagregowane. –

+0

+1 na twoje życzenie ** nie **, aby uzyskać odpowiedź ... Szukaj 'INNER JOIN', aby uzyskać tabelę" drużyn "połączoną z tabelą" graczy "za pośrednictwem' teams.id' i 'players.team_id' . Niż szukać "GROUP BY" i "SUM" – Shnugo

+0

sprawdź tutaj, aby dowiedzieć się więcej o Shnugo Sugestie słów kluczowych i przykłady http://www.w3schools.com/sql/default.asp –

Odpowiedz

1

Najpierw należy spróbować połączyć DOŁĄCZYĆ stolik (identyfikator w drużynach zostanie połączony z TeamId w odtwarzaczach) na podstawie kolumn klucza obcego.

Następnie należy wykonać GROUP BY i użyć funkcji SUM agregacji, aby uzyskać cele dla każdej drużyny.

Więc zapytanie będzie jak:

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

To powinno być komentarzem lub mieć przykład SQL .. – sagi

+1

Czy jesteś pewien, że to wystarczy, aby uzyskać odpowiedź? Zwłaszcza jeśli istnieją komentarze, które już mówią dokładnie to samo? – Shnugo

+2

Zamierzam zaznaczyć to jako odpowiedź, którą wymyśliłem, prawie dokładnie tak samo (z lektury materiału źródłowego), dzięki @all za wskazanie mnie we właściwym kierunku. Postanowiłem nie czytać tego, dopóki nie wymyśliłem odpowiedzi. – Thermatix

0

Najpierw trzeba graczy grupowych przez zespoły: użyj t1.id = t2.id dołączyć wartości w tabelach, a następnie przez grupę motyw " BROUP PRZEZ "t.name.

Następnie: użytkownik "SUMA (wartość)" funkcja, która sumuje wartości.

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

Podczas nauczania osób dopiero teraz wprowadzonych do SQL, unikaj używania niejawnej składni łączenia. Używaj tylko właściwej składni joins – sagi

+0

ok, dziękuję za radę @sagi – Yaz

Powiązane problemy