2016-03-31 4 views
2

dort sagen verkauft zu berechnen ist eine SQL-TabelleAbfrage die Anzahl der verschiedenen Produkte zu einem bestimmten Kunden

SHIPMENTS(ProductNumber, ClientNumber, Quantity) 
(1,1,4) 
(2,5,2) 
(1,1,2) 
(4,1,5) 
(2,5,3) 

In dem obigen Beispiel wir, dass Client # 1 bemerken drei Einkäufe gemacht hat (zweimal das gleiche Produkt). Daher sollte die Antwort 2 sein, da wir nach der Anzahl der verschiedenen Produkte suchen, die von diesem Kunden gekauft wurden.

diese Abfrage Anwenden

SELECT count(*) 
FROM SHIPMENTS 
WHERE ClientNumber = 1; 

verständlicherweise geben 3 als Ergebnis. Und ich kann mir nicht die Lösung vorstellen, wie man nur für die verschiedenen Produkte rechnet.

Antwort

3
SELECT count(DISTINCT ProductNumber) 
FROM SHIPMENTS 
WHERE ClientNumber = 1; 

Dies sollte den Trick tun. Das Hinzufügen von DISTINCT nimmt jeden einmaligen Wert einmal: http://www.w3schools.com/sql/sql_distinct.asp

+1

Ja, der Syntax-Abschnitt auf diesem Link zeigt ein schönes Beispiel. Ich wollte die gleiche Seite verlinken, lol. – Dresden

+0

@MikeS großartige Köpfe denken, ich denke, die Website hat auch eine schöne ausführbare Beispiel. – Jester

+0

@Jester Ich schätze es, großer Verstand. – user3785612