2017-06-12 2 views
0

Ich habe diese Tabelle auf mysql.MySQL Unique Item Count Abfrage

CustomerName CustomerGroup hasPurchase 
Jerry  A    CAR 
Jerry  A    TOY 
Jerry  A    CAR 
Springer  B    DRINK 
Springer  B    CAR 
Springer  B    CAR 
Springer  B    DRINK 

Meine Erwartetes Ergebnis:

CustomerName CustomerGroup totalPurchase uniquePurchase 
Jerry  A    3    2 
Springer  B    4    2 

totalPurchase ist die Summe Gegenstände, die er gekauft hat. uniquePurchase ist die andere Art von Artikel, den er gekauft hat.

was ist die richtige mysql-Abfrage dafür? Danke für die Hilfe.

+0

, was Sie bisher versucht? – Faisal

+0

Zeigen Sie Ihren versuchten Code. – user1234

Antwort

0
SELECT DISTINCT CustomerName, 
       CustomerGroup, 
       COUNT(hasPurchase) as totalPurchase, 
       COUNT(DISTINCT hasPurchase) as uniquePurchase 
FROM XXX 
GROUP BY CustomerName, 
     CustomerGroup 

Ich habe es nicht auf MySQL laufen, aber ich denke, es sollte funktionieren.

+1

thx, es funktioniert. –

0

customer und customerGroup sind Unter der Annahme derselben für jede Zeile, verwenden count und count mit distinct zusammen mit group by

select customerName 
,customerGroup 
,count(hasPurchase) as totalPurchase 
,count(distinct hasPurchase) as uniquePurchase 
from your_table 
group by CustomerName,CustomerGroup 
0

Sie können Gruppe versuchen, dieses für

Count(hasPurchase) für taotalPurchase

Count(Distinct hasPurchase) für uniquePurchase

SELECT customerName,customerGroup,count(hasPurchase) as totalPurchase,count(distinct hasPurchase) as uniquePurchase 
from table group by CustomerName;