2016-05-12 5 views
0

Meine aktuelle Abfrage istWie erhalten Sie mehrere Werte in einer einzelnen Spalte, wenn Sie die Gruppierung nach verwenden?

SELECT SUM(error_count) as error_count, job_id, operator_name 
from table_name 
GROUP BY operator_name 

Und der Ausgang ist

error_count job_id operator_name  
17   12321  A.kumar 
11   2212  Bindu 
45   3412  Harish Babu 

Dies ist richtig für Fehlerzählung kommt, aber Job-ID, die als letzte job_id kommt, ist nicht korrekt. Ich möchte alle job_id in Komma getrennt

SELECT SUM(error_count) as error_count , job_id = some_func(""+job_id), operator_name 
from table_name 
GROUP BY operator_name 

So kann ich die Antwort als

error_count job_id   operator_name 
    17   12321,123  A.kumar 
    11   2212 ,111  Bindu 
    45   3412,3412  Harish Babu 

ich diese Frage Sinn macht Hoffnung bekommen.

Antwort

2

die Sie interessieren, können funktionieren;)

SELECT SUM(error_count) as error_count , group_concat(job_id) as job_id, operator_name  
FROM table_name 
GROUP BY operator_name 

Werfen Sie auch einen Blick von GROUP BY (Aggregate) Function Descriptions

+0

Dank es funktioniert ,,, ich einige haben 100000 + Aufzeichnungen so hat diese group_concat beeinflussen Geschwindigkeit – user3619389

+0

shud ich benutze sowohl Summe und Gruppe außerhalb sql – user3619389

+0

Was meinst du von außerhalb sql, ist das in 'java' oder' php' oder andere? – Mippy

1

Versuchen GROUP_CONCAT,

SELECT 
      SUM(error_count) AS error_count , 
      GROUP_CONCAT(job_id) AS jobids, 
      operator_name 
    FROM 
      table_name 
    GROUP BY 
      operator_name 
Verwandte Themen