2016-02-22 14 views
11

Per essere sincero, non conosco SQL, tuttavia non voglio la risposta, voglio risolverlo da solo.SQL aggiungi colonne di ogni record insieme

ecco la domanda:

Scrivi una query SQL per calcolare il numero di obiettivi per ogni squadra.

giocatori

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

squadre

id name 
1 New Zealand 
2 London 

Quello che sto chiedendo è una freccia per le informazioni che mi permetterà di risolvere la questione.

Ho provato a cercare me stesso ma non conosco la terminologia corretta per porre la domanda, googliando 'scrivi sql per aggiungere campi per ogni riga' sembra solo tornare sull'aggiunta di colonne o inserimento.

+1

Vedere 'GROUP BY' e funzioni di aggregazione. –

+0

+1 per il tuo desiderio ** non ** per ottenere una risposta ... Cerca "INNER JOIN" per ottenere la tabella "teams" connessa con la tabella "players" tramite 'teams.id' e' players.team_id' . Cercate 'GROUP BY' e' SUM' – Shnugo

+0

controllate qui per saperne di più su Shnugo Parole chiave suggerimenti ed esempi http://www.w3schools.com/sql/default.asp –

risposta

1

È necessario innanzitutto provare a UNIRE le tue tabelle (l'ID in Team sarà collegato a TeamId nei Giocatori.) In base alle colonne chiave esterna.

Quindi è necessario eseguire GROUP BY e utilizzare la funzione di aggregazione SUM per ottenere gli obiettivi per ciascuna squadra.

Quindi la vostra richiesta sarà come:

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

Quello dovrebbe essere un commento o un esempio SQL .. – sagi

+1

Sei sicuro che sia sufficiente per una risposta? Soprattutto se ci sono già commenti che affermano esattamente la stessa cosa? – Shnugo

+2

Sto per spuntare questo dato che la risposta che ho trovato era quasi identica (dalla lettura del materiale sorgente), grazie a @all per avermi indicato nella giusta direzione. Ho deciso di non leggerlo fino a quando non ho trovato una risposta. – Thermatix

0

Prima di tutto bisogna giocatori gruppo da squadre: utilizzare t1.id = t2.id ad unirsi valori nelle tabelle, e poi il tema del gruppo da " BROUP BY "t.name.

Quindi: utente "SOMMA (valore)" funzione che somma i valori.

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

Quando si insegna alle persone solo ora introdotte a SQL, evitare l'uso della sintassi di join implicita. Utilizza solo la sintassi corretta dei join – sagi

+0

ok, grazie per il consiglio @sagi – Yaz

Problemi correlati