2017-03-10 1 views
1

Ich habe eine Tabelle, die diese ElementeWie mehrere Spalten Datensätze zusammenzufassen und gleichzeitig auf einen Schlag deutlich auswählen?

Column_1 | Column_2 | Column_3 | Column_4 
------------------------------------------ 
John1  1   1   2   
John1  3   2   2  
John1  2   3   2  
Eric   4   2   2 
Eric   4   7   2  
Christina 1   2   2 
Christina 1   2   3 

ich ein paar Dinge tun wollen hält:

1) Ich möchte alle Datensätze in Spalte_1 zu bekommen, aber ich will nicht Namen wiederholen. Zum Beispiel weiß ich, dass ich eine SELECT DISTINCT Column_1 FROM MyTable machen kann, die dies erreichen wird. Im Gegenzug erhalte ich: John1, Eric, Christina

2) Ich möchte auch die Summen jeder Spalte aufaddieren, die ich weiß, dass ich von SELECT SUM(Column_2) FROM (SELECT * FROM MyTable where Column_1 = John1) AS p1 tun können, die diese acheive wird. Im Gegenzug werde ich bekommen:

3) Ich möchte auch das Gleiche tun für Column_3 und Column_4 wo Spalte_1 zu bestimmten Kriterien wie oben gleich ist.

Das Problem: Wie kann ich alle drei dieser Abfragen in eine Abfrage erreichen ist das überhaupt möglich?

Mein Endergebnis sollte wie folgt aussehen:

John1  6 6 6 
Eric  8 9 4 
Christina 2 4 5 

Antwort

3

Sie können dies tun, indem Sie group by Column1 und sum() die Spalten, die Sie aggregieren möchten.

select 
    Column_1 
    , sum(Column_2) as sumColumn_2 
    , sum(Column_3) as sumColumn_3 
    , sum(Column_4) as sumColumn_4 
from t 
group by Column_1 

rextester Demo: http://rextester.com/XACANR1610

kehrt:

+-----------+-------------+-------------+-------------+ 
| Column_1 | sumColumn_2 | sumColumn_3 | sumColumn_4 | 
+-----------+-------------+-------------+-------------+ 
| Christina |   2 |   4 |   5 | 
| Eric  |   8 |   9 |   4 | 
| John1  |   6 |   6 |   6 | 
+-----------+-------------+-------------+-------------+ 
+0

Sie Sir, sind ein Lebensretter. – Yusha

+0

@Yusha Glücklich zu helfen! – SqlZim

Verwandte Themen