2016-04-01 13 views
-2

So habe ich eine Tabelle weather, die etwa wie folgt aussieht:MYSQL - Finden der Summe der Spalte für alle verschiedenen Felder einer anderen Spalte?

country | occurences 
USA  | 5 
UK  | 1 
BOL  | 1 
USA  | 2 
UK  | 1 

und diese Tabelle weatherOccurences ist, was ich generieren möchten:

country | occurenceTotal 
USA  | 7 
UK  | 2 
BOL  | 1 

Grundsätzlich für jeden verschieden Land will ich alle berechnen das Vorkommen dafür ... aber ich bin mir nicht sicher, wie ich das machen soll. Ich habe versucht:

INSERT INTO weatherOccurences(`occurenceTotal`) 
SELECT SUM(occurences) from weather w1 
JOIN weatherOccurences w2 
ON w1.country = w2.country 

Doch statt mir das Auftreten Zahl jeden Land zu geben, es dauerte nur eine Summe aller Vorkommen jemals ... und die beigefügte es auf eine neue Zeile am Ende. Wie würde ich das ehemalige tun? Jede Hilfe würde sehr geschätzt werden, danke!

[Bearbeiten] hätte ich UPDATE und SET für diesen Einsatz?

+0

So haben Sie, Schlüsselwörter wie SUM, Spalten- und MYSQL. Ich hätte gedacht, das wäre genug, um ohne unsere Hilfe eine Antwort zu finden. – Strawberry

+0

Mögliche Duplikat [MySql Summe Elemente einer Spalte] (http://stackoverflow.com/questions/4586040/mysql-sum-elements-of-a-column) – Reto

+1

Das einzige, was Sie verpasst zu haben, scheinen die ** 'GROUP BY' ** -Klausel. Fügen Sie am Ende Ihrer Abfrage "GROUP BY country" hinzu und fügen Sie die Spalte "country" zur SELECT-Liste (und zur Liste der Spalten in der INSERT-Datei) hinzu. – spencer7593

Antwort

3

Sie müssen nach Land Gruppe, legen Sie das Land ein und wählen Sie das Land:

INSERT INTO weatherOccurences(country, occurenceTotal) 
SELECT country, SUM(occurences) 
from  weather 
GROUP BY country 
Verwandte Themen